/* cmpc1 * * Just compare two equal 8 character (9 bit) strings. * = => zero and carry indicators will be on. */ inst cmpc -nt "Equal 9 bit char strings" -io 1 -ir zr cr; desc 1 -ns 8; desc 2 -ns 8; data 1 "abcd1234"; data 2 "abcd1234"; page -all; /* cmpc2 * * Same as cmpc1 except move data across page boundary and add modification. */ inst cmpc -nt"Same as prev but X pg bound" -io 2 -ir zr cr -mf1 ar reg idb -mf2 ar reg idb; desc 1 -ns 8; desc 2 -ns 8; data 1 -do -4 "abcd" "1234"; data 2 -do -2 "ab" "cd1234"; page -all; /* cmpc3 * * Same as cmpc2 except first string is > than second string. */ inst cmpc -nt "S1 > S2 - X pg bound" -io 3 -ir cr -mf1 ar reg idb -mf2 ar reg idb; desc 1 -ns 8; desc 2 -ns 8; data 1 -do -5 "abcd1" "235"; data 2 -do -2 "ab" "cd1234"; page -all; /* cmpc4 * * Same as cmpc2 except first string is < than second string. */ inst cmpc -nt "S1 < S2 - X pg bound" -io 1 -mf1 ar reg idb -mf2 ar reg idb; desc 1 -ns 8; desc 2 -ns 8; data 1 -do -4 "abcd" "1234"; data 2 -do -2 "ab" "cd1235"; page -all; /* cmpc5 * * Same as cmpc2 except we will use cn fields. */ inst cmpc -nt "Test use of CN fields" -io 2 -ir zr cr -mf1 ar reg idb -mf2 ar reg idb; desc 1 -ns 8 -cn 1; desc 2 -cn 2 -ns 8; data 1 -do -4 " abc" "d1234"; data 2 -do -2 "**" "abcd1234"; page -all; /* cmpc6 * * We will test the use of the fill character. In this test we will fill * string 1. */ inst cmpc -nt "Fill in S1" -io 1 -ir cr zr -fc* -mf1 idr ar -mf2 ida ar; desc 1 -ns 6; desc 2 -ns 10; data 1 -do -3 "123" "456"; data 2 -do -6 "123456" "****"; page -all; /* cmpc7 * * Same as cmpc6 except the fill characters will be split across * a page boundary. */ inst cmpc -nt "Fill X pg bound" -io 1 -ir cr zr -fc* -mf1 idr ar -mf2 ida ar; desc 1 -ns 6; desc 2 -ns 10; data 1 -do -5 "12345" "6"; data 2 -do -9 "123456***" "*"; page -all; /* cmpc8 * * In this test we will test using the fill character of string 2. */ inst cmpc -nt "Fill in S2" -io 2 -ir zr cr -fc /* Fill character is a blank. */ -mf1 idb rl 8 ar reg -mf2 idb rl 4 ar reg; /* No desc statements needed. */ data 1 -do -4 "1234" " "; data 2 -do -3 "123" "4"; page -all; /* cmpc9 * * The same as cmpc8 except we will split the fill characters across a page boundary. */ inst cmpc -nt "Same as prev - fill X pg bound" -io 2 -ir zr cr -fc /* Fill character is a blank. */ -mf1 idb rl 8 ar reg -mf2 idb rl 4 ar reg; /* No desc statements needed. */ data 1 -do -5 "1234 " " "; data 2 -do -3 "123" "4"; page -all; /* cmpc10 * * This test will compare two strings that cross two page boundaries. */ inst cmpc -nt "Both strings X pg bounds" -io 3 -ir cr zr -mf1 idb reg ar rl 4352 -mf2 idb reg ar rl 4352; data 1 -do -128 (4352) "S"; data 2 -do -128 (4352) "S"; page -all; /* cmpc11 * * This test will compare 3 (6 bit) characters. We will have them * cross a page boundary and we will use the cn field of the * descriptors to start the string at a character other than character * zero of the effectively addressed word. */ inst cmpc -nt "6 bit characters" -io 2 -ir cr zr -mf1 ar reg idb rl 3 -mf2 ar reg idb; desc 1 -cn 2 -ta 6; desc 2 -ns 3 -cn 1; /* NOTE, ta field taken from desc 1 statement. */ data 1 -do -2 000020 /*Page Boundary*/ 2122; data 2 -do -2 002021 /*Page Boundary*/ 22; page -all; /* cmpc12 * * This test is like cmpc11 except that the character size will be 4. */ inst cmpc -nt "4 bit characters" -ir cr zr -mf1 idb reg ar -mf2 idb reg ar; desc 1 -ns 3 -cn 2 -ta 4; /* This desc statement must be first. */ desc 2 -ns 3 -cn 1; /* This desc statement can NOT have a -ta option. */ data 1 -do -2 000232 260; /* characters "1001"b "1010"b "1011"b */ data 2 -do -1 011 253; /* The same 3 characters. */ page -all; /* cmpc13 * compare two strings of maximum length. * the data is six bit data and maximum * desc. mod. is taken * */ inst cmpc -nt "d1,2 covers 3pp. 6bit zr cr" -ir zr cr -mf1 idb ar reg rl 6528 -mf2 idb ar reg rl 6528; desc 1 -ta 6 ; data 1 -do -128 (1088) 212121212121; data 2 -do -128 (1088) 212121212121; page -all; /* cmpc14 * this is a test using 4 bit data with the * first string covering the maximum number of words. * the second string also is of maximum length * and the descriptors are all direct mod. * */ inst cmpc -nt "d1,2 covers 3pp 4bit zr cr" -ir cr zr -mf1 rl 8704 -mf2 rl 8704; desc 1 -ta 4; data 1 -do -128 (1088) 232232232232; data 2 -do -128 (1088) 232232232232; page -all; /* cmpc15 * the next four tests will again use the maximum * amount of data but will vary the desc. mod. taken. * */ inst cmpc -io 2 -nt "d1,2 covers 3pp 6 bit zr cr" -mf1 ida reg rl 6528 -mf2 idr ar rl 6528 -ir cr zr; desc 1 -ta 6; data 1 -do -128 (1088) 212223242526; data 2 -do -128 (1088) 212223242526; page -all; /* cmpc16 * this is the same as test 15 but there will be not3 * match of the data (str1 < str2 : zr=0 cr=0) * */ inst cmpc -io 1 -nt "d1,2 covers 3 pp 6 bit" -mf1 ida reg rl 6528 -mf2 idr ar rl 6528; desc 1 -ta 6; data 1 -do -128 (1088) 212221222122; data 2 -do -128 (1088) 2122232422226; page -all; /* cmpc17 * this test is similar to test14 only the * maximum number of desc. mods. are taken. * the data is still four bit. * */ inst cmpc -io 3 -nt "d1,2 covers 3pp 4bit zr cr" -ir zr cr -mf1 idb ar reg rl 8704 -mf2 idb ar reg rl 8704; desc 1 -ta 4; data 1 -do -128 (1088) 232232232232; data 2 -do -128 (1088) 232232232232; page -all; /* cmpc18 * this test will take a variety of desc. mod. * and will force st1 > st2 (zr =0 cr = 1). * the data is four bit. * */ inst cmpc -io 1 -nt "d1,2 covers 3pp 4 bit cr" -ir cr -mf1 ida reg rl 8704 -mf2 idr ar rl 8704; desc 1 -ta 4; data 1 -do -128 (1088) 232232232222; data 2 -do -128 (1088) 227237237237; page -all; /* cmpc19 * the test exercises the fill char option along with * the cn option. the test also uses 6 bit data. * */ inst cmpc -io 1 -nt "d1 split cn 6bit zr cr" -ir zr cr -fc /* fc = 000 */ -mf1 reg ar rl 8 -mf2 reg rl 5; desc 1 -ta 6 -cn 2; desc 2 -cn 1; data 1 -do -2 000020 /* page bound */ 21222324000000; data 2 002021222324; page -all; /* cmpc20 * this test uses 6 bit data and test a different * variety of desc. mods. that test 19. the * data is the same as test 19 except str1 < str2). * */ inst cmpc -io 2 -nt "d1 split fc 6bit" -mf1 idb ar -mf2 ar reg -fc /* fc = 000 */ /* fc = 000 */; desc 1 -ta 6 -ns 8 -cn 2; desc 2 -ns 5 -cn 2; data 1 -do -2 000020 /* paGE BOUND */ 212223220000; data 2 002021222324; page -all; /* cmpc21 * the next wo tests use 4 bit data and test the use of the * fill character. a variety of desc. mods. are taken. * **/ inst cmpc -io 2 -nt "fc 4bit zr cr" -fc /* fc = 000 */ /* fc = 000 */ -mf1 ida ar reg rl 2 -mf2 idr ar rl 4 -ir zr cr; desc 1 -ta 4; data 1 232; data 2 232000; page -all; /* cmcp22 * this test results in str1 > str 2. * */ inst cmpc -io 2 -nt " fc 4bit cr" -ir cr -mf1 idb ar reg -mf2 rl 6 -fc /* fc = 000 */; /* fc = 000 */ desc 1 -ta 4 -ns 4; data 1 -do -2 237237 /* page bound */ ; data 2 232232000; page -all; /* scd1 * * We will split both string 1 and string 2 across page * boundaries. We will use all mods and use a cn * field in descriptors 1 & 2. */ inst scd -nt "Strings X pg bound - all mods" -io 2 -mf1 idb ar reg rl 8 -mf2 idb ar reg -mf3 ar reg; desc 1 -cn 1; desc 2 -cn 3; data 1 -do -5 " " /* Character skipped by cn field. */ "123*" "$678"; data 2 -do -4 " " "*" "$"; data 3 000 000 000 003; page -all; /* scd2 * * simple test which takes no more than the minimum * number of page faults. assures the instruction is * working correctly. * */ inst scd -nt "simple test 9bit"; desc 1 -ns 8; /* 9 bit char */ data 1 "abcd1234"; data 2 "cd"; data 3 000 000 000 002; page -all; /* scd3 * this test uses the same data as test 2 * but splits the first string across a page boundary. the maximum number of descriptor page faultd * for the first two descriptors are also taken. * */ inst scd -nt "d1 split 9bit; FCOs PHAFPG179 & 181 required on L68 CPU" -mf1 idb ar reg rl 8 -mf2 idb ar reg; data 1 -do 2 "ab" "cd1234"; data 2 "cd"; data 3 000 000 000 002; page -all; /* scd4 * this test mixes the page faults among descriptors * and splits data across a page boundary with a * match on the first try. * */ inst scd -nt "d1 split match 1st try; FCOs PHAFPG179 & 181 required on L68 CPU" -mf1 idb ar -mf2 ar reg -mf3 ar; /* note the data word indirection */ desc 1 -ns 8; data 1 -do -1 "a" "bcd1234"; data 2 "ab"; data 3 000 000 000 000; page -all; /* scd5 * same as previous test but both strings * are split across page boundaries. data * word is also accessed directly. * */ inst scd -io 2 -nt "d1,2 split 9bit" -mf1 idb ar reg -mf2 idb ar reg; desc 1 -ns 8; data 1 -do -4 "abcd" "1234"; data 2 -do -1 "d" "1"; data 3 000 000 000 003; page -all; /* scd6 * this test takes all the page faults * possible with the descriptors, and * tests the -cn and -rl option. * */ inst scd -io 2 -nt "max page fault 9bit" -mf1 idb ar reg rl 8 -mf2 idb ar reg -mf3 ar reg; /* that's all pssible indirections */ desc 2 -cn 2; data 1 -do -4 "abcd" "1234"; data 2 -do -2 " " "12"; data 3 000 000 000 004; page -all; /* scd7 * salient feature of this test is * that there is no match on the search. * both data strings cross page boundaries. * */ inst scd -io 2 -nt "no match 9bit" -ir tr /* mf1 is direct */ -mf2 idb ar reg; desc 1 -ns 8; data 1 -do -4 "abcd" "1234"; data 2 -do -1 "5" "6"; data 3 000 000 000 007; page -all; /* scd8 * all possible indirection for descriptors * taken with the cn option for both tested. * strings both split across page. * */ inst scd -io 3 -nt "d1,2 split 9bit" -mf1 idb ar reg rl 5 -mf2 idb ar reg; desc 1 -cn 3; desc 2 -cn 1; data 1 -do -3 "***" "abcde"; data 2 -do -3 "*bc" "*"; data 3 000 000 000 001; page -all; /* scd9 *the next three tests all use the same basic * data but vary the type of indirection and thus * the type of page faults that will be taken. * */ inst scd -io 1 -nt "desc mod d1,2 split 9bit" -mf1 ar -mf2 idb ar reg -mf3 ar reg; desc 1 -ns 5 -cn 3; desc 2 -cn 1; data 1 -do -3"***" "abcde"; data 2 -do -3 "*bc" "*"; data 3 000 000 000 001; page -all; /* scd10 * swap desc1 and desc2 mod * */ inst scd -io 1 -nt "d1,2 split 9bit" -mf1 idb ar reg rl 8 -mf2 ar -mf3 ar reg; desc 1 -cn 3; desc 2 -cn 1; data 1 -do -3 "***" "abcde"; data 2 -do -3 "*bc" "*"; data 3 000 000 000 001; page -all; /* scd11 * mf3 is direct : other two indirect * */ inst scd -io 1 -nt "mf1 direct others ind. 9b" -mf1 idb ar reg rl 8 -mf2 idb ar reg; /* mf3 is direct */ desc 1 -cn 3; desc 2 -cn 1; data 1 -do -3 "***" "abcde"; data 2 -do -3 "*bc" "*"; data 3 000 000 000 001; page -all; /* scd12 * the data for the next two tests spans three pages. * this test uses all direct mod for descriptors. * */ inst scd -io 1 -nt "d1 spans 3pp 9bit" -mf1 rl 4352; data 1 -do -128 (2175) "ab" "bc"; data 2 "bc"; data 3 000 000 010376; page -all; /* scd13 * same data as previous test but using * maximum indirection on the desc. * */ inst scd -io 2 -nt "d1 spans 3pp max desc mod 9b" -mf1 idb ar reg rl 4352 -mf2 idb ar reg -mf3 reg ar; /* no desc statements are needed */ data 1 -do -128 (2175) "ab" "bc"; data 2 "bc"; data 3 000 000 010 376; page -all; /* scd14 * the next two tests move the two char data 2 string * across a page boundary using the large data field of * the previous two tests as data 1. * */ inst scd -io 3 -nt "3 page d1, d2 split 9b" -mf1 idb ar reg rl 4352 -mf2 idb ar reg -mf3 ar reg; /* desc statements not needed */ data 1 -do -128 (2175) "ab" "bc"; data 2 -do -1 "b" "c"; data 3 000 000 010 376; page -all; /* scd15 * data 2 fully contained on page 0 * */ inst scd -io 2 -nt "3page d1, d2 split 9b" -mf1 idb ar reg rl 4352 -mf2 idb ar reg -mf3 ar reg; data 1 -do -128(2175) "ab" "bc"; data 2 -do -2"bc"; data 3 000 000 010 376; page -all; /* scd16 * this starts the 6 bit char tests. * nothing fancy--indirect mod on desc 1 & 2 * */ inst scd -nt "mf1,2 mod 6b; FCOs PHAFPG179 & 181 required on L68 CPU" -mf1 idb ar reg rl 6 -mf2 idb ar reg /* desc3 is direct */; desc 1 -ta 6 /* six bit char */; data 1 202122232425; data 2 2425; data 3 000 000 000 004; page -all; /* scd17 * same data but first string offseet by * 3 char. full indirect mod on desc. * */ inst scd -io 2 -nt "desc mod d1 split 6b; FCOs PHAFPG179 & 181 required on L68 CPU" -mf1 idb ar reg -mf2 idb ar reg -mf3 ar reg; desc 1 -ns 6 -ta 6; data 1 -do -2 212223 242526; data 2 2425; data 3 000 000 000 003; page -all; /* scd18 *this test offsets the second data string. * */ inst scd -io 1 -nt "desc mod d2 offset 6b; FCOs PHAFPG179 & 181 required on L68 CPU" -mf1 idb ar reg rl 6 -mf2 ar reg -mf3 reg /* note the variety of indirection */; desc 1 -ta 6; data 1 212223242526; data 2 -do -2 242500; data 3 000 000 000 003; page -all; /* scd19 * this test specifically exercises the -cn option * along with multiple indirection. * */ inst scd -io 3 -nt "cn on d2 6bit; FCOs PHAFPG179 & 181 required on L68 CPU" -mf1 idb ar reg rl 6 -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 6 -cn 3; desc 2 -cn 3; data 1 -do -4 000000202122 232425000000; data 2 -do -2 000000 212200; data 3 000 000 000 001; page -all; /* scd20 * data 1 covers three pages. match * is on the last pair of characters. * */ inst scd -nt "d1 spans 3pp 6bit; FCOs PHAFPG179 & 181 required on L68 CPU" -mf1 idb ar reg rl 7680 -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 6; data 1 -do -128(1087) 202124252627 202122242223; data 2 2223; data 3 000000014576 000; page -all; /* scd21 *the final series of tests are with 4 bit data * this is just a simple test of two char per string * crossing no page pound. * */ inst scd -nt "d1,2 2 char 4bit; FCOs PHAFPG179 & 181 required on L68 CPU" -mf1 idb ar reg -mf2 idb ar reg /* mf3 is direct */; desc 1 -ta 4 -ns 2; data 1 232 000 000 000 /* "1001" "1010" */; data 2 232 000 000 000; data 3 000 000 000 000; page -all; /* scd22 * split the second string across page bound. * test -cn option for data 2. * */ inst scd -io 2 -nt "cn,offset for d2 4bit; FCOs PHAFPG179 & 181 required on L68 CPU" -mf1 idb ar reg rl 2 -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 4; desc 2 -cn 1; data 1 232 000 000 000; data 2 -do -1 011 240 /* "1001" "1010" */; data 3 000 000 000 000; page -all; /* scd23 * this test splits both strings and tests * the cn option for both strings * */ inst scd -io 2 -nt "d1,2 offset 4bit" -mf1 idb ar reg -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 4 -ns 2 -cn 2; desc 2 -cn 1; data 1 -do -2 000 232 000; data 2 -do -1 011 24; data 3 000 000 000 000; page -all; /* scd24 * this test will force data to cover all * three pages with the first data string. * */ inst scd -io 3 -nt "d1 covers 3pp 4bit" -mf1 ar rl 10240 -mf2 reg -mf3 ar; desc 1 -ta 4 ; data 1 -do -128 (4350) 232 236; data 2 236; data 3 000 000 020 774; page -all; /* scdr1 * * Same as test for scd. * We will split both string 1 and string 2 across page * boundaries. We will use all mods and use a cn * field in descriptors 1 & 2. */ inst scdr -nt "Same as scd test" -io 3 -mf1 idb ar reg rl 8 -mf2 idb ar reg -mf3 ar reg; desc 1 -cn 1; desc 2 -cn 3; data 1 -do -5 " " /* Character skipped by cn field. */ "123*" "$678"; data 2 -do -4 " " "*" "$"; data 3 000 000 000 003; page -all; /* scdr2 * * simple test which takes no more than the minimum * number of page faults. assures the instruction is * working correctly. * */ inst scdr -nt "simple test 9bit"; desc 1 -ns 8; /* 9 bit char */ data 1 "abcd1234"; data 2 "cd"; data 3 000 000 000 004; page -all; /* scdr3 * this test mixes the page faults among descriptors * and splits data across a page boundary with a * match on the first try. * */ inst scdr -nt "d1 split match first time 9b" -mf1 idb ar -mf2 ar reg -mf3 ar; /* note the data word indirection */ desc 1 -ns 8; data 1 -do -1 "a" "bcd1234"; data 2 "ab"; data 3 000 000 000 006; page -all; /* scdr4 * same as previous test but both strings * are split across page boundaries. data * word is also accessed directly. * */ inst scdr -io 2 -nt "d1,2 split 9bit" -mf1 idb ar reg -mf2 idb ar reg; desc 1 -ns 8; data 1 -do -4 "abcd" "1234"; data 2 -do -1 "d" "1"; data 3 000 000 000 003; page -all; /* scdr5 * this test takes all the page faults * possible with the descriptors, and * tests the -cn and -rl option. * */ inst scdr -io 2 -nt "max page fault 9bit" -mf1 idb ar reg rl 8 -mf2 idb ar reg -mf3 ar reg; /* that's all pssible indirections */ desc 2 -cn 2; data 1 -do -4 "abcd" "1234"; data 2 -do -2 " " "12"; data 3 000 000 000 002; page -all; /* scdr6 * salient feature of this test is * that there is no match on the search. * both data strings cross page boundaries. * */ inst scdr -io 2 -nt "no match 9bit" -ir tr /* mf1 is direct */ -mf2 idb ar reg; desc 1 -ns 8; data 1 -do -4 "abcd" "1234"; data 2 -do -1 "5" "6"; data 3 000 000 000 007; page -all; /* scdr7 * all possible indirection for descriptors * taken with the cn option for both tested. * strings both split across page. * */ inst scdr -io 3 -nt "d1,2 split 9bit" -mf1 idb ar reg rl 5 -mf2 idb ar reg; desc 1 -cn 3; desc 2 -cn 1; data 1 -do -3 "***" "abcde"; data 2 -do -3 "*bc" "*"; data 3 000 000 000 002; page -all; /* scdr8 *the next three tests all use the same basic * data but vary the type of indirection and thus * the type of page faults that will be taken. * */ inst scdr -io 1 -nt "desc mod d1,2 split 9b" -mf1 ar -mf2 idb ar reg -mf3 ar reg; desc 1 -ns 5 -cn 3; desc 2 -cn 1; data 1 -do -3"***" "abcde"; data 2 -do -3 "*bc" "*"; data 3 000 000 000 002; page -all; /* scdr9 * swap desc1 and desc2 mod * */ inst scdr -io 1 -nt "desc mod d1,2 split 9b" -mf1 idb ar reg rl 8 -mf2 ar -mf3 ar reg; desc 1 -cn 3; desc 2 -cn 1; data 1 -do -3 "***" "abcde"; data 2 -do -3 "*bc" "*"; data 3 000 000 000 005; page -all; /* scdr10 * mf3 is direct : other two indirect * */ inst scdr -io 1 -nt "mf1 direct others ind 9bit" -mf1 idb ar reg rl 8 -mf2 idb ar reg; /* mf3 is direct */ desc 1 -cn 3; desc 2 -cn 1; data 1 -do -3 "***" "abcde"; data 2 -do -3 "*bc" "*"; data 3 000 000 000 005; page -all; /* scdr11 * the data for the next two tests spans three pages. * this test uses all direct mod for descriptors. * */ inst scdr -io 1 -nt "d1 spans 3 pp 9bit" -mf1 rl 4352; data 1 -do -128 "bc" (2175) "ab" ; data 2 "bc"; data 3 000 000 010376; page -all; /* scdr12 * same data as previous test but using * maximum indirection on the desc. * */ inst scdr -io 2 -nt "d1 spans 3pp max desc mod 9b" -mf1 idb ar reg rl 4352 -mf2 idb ar reg -mf3 reg ar; /* no desc statements are needed */ data 1 -do -128 "bc" (2175) "ab" ; data 2 "bc"; data 3 000 000 010 376; page -all; /* scdr13 * the next two tests move the two char data 2 string * across a page boundary using the large data field of * the previous two tests as data 1. * */ inst scdr -io 3 -nt "3 page d1, d2 split 9b" -mf1 idb ar reg rl 4352 -mf2 idb ar reg -mf3 ar reg; /* desc statements not needed */ data 1 -do -128 (2175) "ab" "bc"; data 2 -do -1 "b" "c"; data 3 000 000 000 000; page -all; /* scdr14 * data 2 fully contained on page 0 * */ inst scdr -io 2 -nt "3 page d1, d2 split 9b" -mf1 idb ar reg rl 4352 -mf2 idb ar reg -mf3 ar reg; data 1 -do -128 "bc" (2175) "ab" ; data 2 -do -2"bc"; data 3 000 000 010376; page -all; /* scdr15 * this starts the 6 bit char tests. * nothing fancy--indirect mod on desc 1 & 2 * */ inst scdr -nt "desc 1,2 mod 6bit" -mf1 idb ar reg rl 6 -mf2 idb ar reg /* desc3 is direct */; desc 1 -ta 6 /* six bit char */; data 1 202122232425; data 2 2425; data 3 000 000 000 000; page -all; /* scdr16 * same data but first string offseet by * 3 char. full indirect mod on desc. * */ inst scdr -io 2 -nt "mod d1 split 6b; FCOs PHAFPG179 & 181 required on L68 CPU" -mf1 idb ar reg -mf2 idb ar reg -mf3 ar reg; desc 1 -ns 6 -ta 6; data 1 -do -2 212223 242526; data 2 2425; data 3 000 000 000 001; page -all; /* scdr17 *this test offsets the second data string. * */ inst scdr -io 1 -nt "full desc mod d2 offset 6b" -mf1 idb ar reg rl 6 -mf2 ar reg -mf3 reg /* note the variety of indirection */; desc 1 -ta 6; data 1 212223242526; data 2 -do -2 242500; data 3 000 000 000 001; page -all; /* scdr18 * this test specifically exercises the -cn option * along with multiple indirection. * */ inst scdr -io 3 -nt "cn on d2 6bit; FCOs PHAFPG179 & 181 required on L68 CPU" -mf1 idb ar reg rl 6 -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 6 -cn 3; desc 2 -cn 3; data 1 -do -4 000000202122 232425000000; data 2 -do -2 000000 212200; data 3 000 000 000 003; page -all; /* scdr19 * data 1 covers three pages. match * is on the last pair of characters. * */ inst scdr -nt "no off d1 spans 3pp 6b" -mf1 idb ar reg rl 7680 -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 6; data 1 -do -128(1087) 202124252627 202122242223; data 2 2223; data 3 000000002200 000; page -all; /* scdr20 *the final series of tests are with 4 bit data * this is just a simple test of two char per string * crossing no page pound. * */ inst scdr -nt "d1.2 2 char 4bit" -mf1 idb ar reg -mf2 idb ar reg /* mf3 is direct */; desc 1 -ta 4 -ns 2; data 1 232 000 000 000 /* "1001" "1010" */; data 2 232 000 000 000; data 3 000 000 000 000; page -all; /* scdr21 * split the second string across page bound. * test -cn option for data 2. * */ inst scdr -io 2 -nt "cn,offset for d2 4bit" -mf1 idb ar reg rl 2 -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 4; desc 2 -cn 1; data 1 232 000 000 000; data 2 -do -1 011 240 /* "1001" "1010" */; data 3 000 000 000 000; page -all; /* scdr22 * this test splits both strings and tests * the cn option for both strings * */ inst scdr -io 2 -nt "d1,2 offset 4bit; FCOs PHAFPG179 & 181 required on L68 CPU" -mf1 idb ar reg -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 4 -ns 2 -cn 2; desc 2 -cn 1; data 1 -do -2 000 232 000; data 2 -do -1 011 24; data 3 000 000 000 000; page -all; /* scdr23 * this test will force data to cover all * three pages with the first data string. * */ inst scdr -io 3 -nt "d1 covers 3 pp 4bit" -mf1 ar rl 10240 -mf2 reg -mf3 ar; desc 1 -ta 4 ; data 1 -do -128 (4350) 232 236; data 2 236; data 3 000 000 003 002; page -all; /* mlr1 * * Just a simple test. Move one 9 bit character to another. */ inst mlr -nt "Move 1 (9) bit char"; desc 1 -ns 1; data 1 "a"; desc 2 -ns 1; data 2 "a"; page -all; /* mlr2 * * Move two characters that cross a page boundary. Note, we need AR * modification in order to set a data offset that is not a multiple * of the word size. By doing this we will move the data fields to * segments etd1 and etd2. */ inst mlr -nt "2 chars X page bound" -mf1 ar -mf2 ar; desc 1 -ns 2; desc 2 -ns 2; data 1 "ab" -do -1; data 2 "ab" -do -1; page -all; /* mlr3 * * This test will move 20 characters. The characters will start in the middle * of a word. The last two characters moved will cross a page boundary. * The instruction word will be moved so that its descriptors cross a * page boundary. */ inst mlr -nt "20 char X page bound (-io 1)" -io 1; desc 1 -cn 2 /* Effective address will point to a word boundary. * We will start the string at character 2. Note, when * we set up the data we have to enter the two characters * that we are not using. */ -ns 20; desc 2 -cn 2 -ns 20; data 1 -do -20 " " (5) "abcd" ; data 2 -do -20 000000 (5) "abcd" ; /* Skipped data in a result field * must be zeros since this is what * et initializes the test area * to be. */ page -all; /* mlr4 * * This test is the same as mlr3 except that the descriptors will be * referenced via indirect words. These indirect words will use no * modification so the descriptors and the data will still be in * segment etx. Also we will move the instruction word back * so that the second descriptor is on the 2nd page. */ inst mlr -nt "Same as prev - ind desc" -io 2 -mf1 id -mf2 id; desc 1 -ns 20 -cn 2; /* Note the order of the terms. */ desc 2 -cn 2 -ns 20; data 1 -do -20 " " (5) "abcd" ; data 2 -do -20 000 000 (5) "abcd" ; page -all; /* mlr5 * /* This test is the same as mlr4 except that the indirect words will * use index register modification. */ inst mlr -nt "Same as prev - use indexes" -io 2 -mf2 idr -mf1 idr; /* Note order of mf terms. */ desc 1 -cn 2 -ns 20; desc 2 -cn 2 -ns 20; data 1 -do -20 " " (5) "abcd" ; data 2 -do -20 000 000 (5) "abcd" ; page -all; /* mlr6 * /* This test is the same as mlr4 except that the indirect words will * use AR modification. This will force ET to place the descriptors and * the data fields in segments eti1 and eti2. */ inst mlr -nt "Ind with AR mod" -io 2 -mf2 ida -mf1 ida; desc 1 -cn 2 -ns 20; desc 2 -cn 2 -ns 20; data 1 -do -20 " " (5) "abcd" ; data 2 -do -20 000 000 (5) "abcd" ; page -all; /* mlr7 * * This test is the same as the test mlr3 except that the descriptors * will use REG and RL modification. */ inst mlr -nt "Ind with REG 7. RL mod" -io 1 -mf2 reg rl 20 -mf1 rl 20 reg; desc 1 -cn 2; desc 2 -cn 2; data 1 -do -20 " " (5) "abcd" ; data 2 -do -20 000 000 (5) "abcd" ; page -all; /* mlr8 * * This test is the same as the test mlr3 except that the descriptors * will use AR, REG and RL modification. */ inst mlr -nt "Desc use AR,REG,& RL mod" -io 1 -mf1 reg ar rl 20 -mf2 rl 20 ar reg; desc 1 -cn 2; desc 2 -cn 2; data 1 -do -20 " " (5) "abcd" ; data 2 -do -20 000 000 (5) "abcd" ; page -all; /* mlr9 * * This test is the same as the test mlr3 except that the descriptors * will use AR, REG and RL modification AND we will use indirect descriptors. * We will not have any modification in the indirect words so the descriptors * will still be in segment etx. */ inst mlr -nt "Same as prev - use ind" -io 1 -mf1 rl 20 ar /* This puts the data in etd1. */ reg /* Use index register 1.. */ id /* This adds indirect descriptors. */ -mf2 id rl 20 reg ar; desc 1 -cn 2; desc 2 -cn 2; data 1 -do -20 " " (5) "abcd" ; data 2 -do -20 000 000 (5) "abcd" ; page -all; /* mlr10 * * This test is the same as the test mlr3 except that the descriptors * will use AR, REG and RL modification AND we will use indirect descriptors. * The indirect words will use both reg and ar modification. */ inst mlr -nt "Desc: AR,RL,REG Ind: AR,REG" -io 1 -mf1 rl 20 ar /* This puts the data in etd1. */ reg /* Use index register 1.. */ idb /* This adds indirect descriptors. Descriptors will go in * segments eti1 and eti2. */ -mf2 idb rl 20 reg ar; desc 1 -cn 2; desc 2 -cn 2; data 1 -do -20 " " (5) "abcd" ; data 2 -do -20 000 000 (5) "abcd" ; page -all; /* mlr11 * * This test will move 6 6 bit characters. Both strings will have 3 characters * on each side of the page boundary. The descriptor 2 data will be offset 4 * 9 bit characters but will specify a "cn" field of 3 so the effective starting * address will be the same as descriptor 1. All possible modification will be * used. Descriptor 1 will also use RL modification. */ inst mlr -nt "6 bit chars X pg bound" -mf1 rl 6 idb ar reg -mf2 reg ar idb; desc 1 -ta 6; desc 2 -cn 3 -ta 6 -ns 6; data 1 -do -2 212223242526; data 2 -do -4 (2) 000 /* We must fill in the unused 3 six bit characters. */ 212223242526; /* The actual data result field. */ page -all; /* mlr12 * * This test will move 3 4 bit characters. Below is a description of what is * going on. EA is the effective address of the descriptor. * * string 1 EA 1 | 2 3 * --------------------------------------------------- * char addr 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 * --------------------------------------------------- * string 2 EA 1 2 | 3 * * All possible modification will be used. Descriptor 2 will use RL mod. */ inst mlr -nt "4 bit chars" -mf1 idb ar reg -mf2 reg ar idb rl 3; desc 1 -ta 4 -cn 1 -ns 3; desc 2 -cn 6 -ta 4; data 1 011 253 -do -1; data 2 -do -4 000000000 232 26; page -all; /* mlr13 * * This test will move 6 9 bit characters into 6 6 bit characters. * Both strings will be split in the middle across a page boundary. */ inst mlr -nt "9 bit chars into 6 bit chars" -mf1 ar reg idr -mf2 reg ar idb; data 1 -do -3 " te" "st "; data 2 -do -2 406445 636440; desc 1 -ns 6; desc 2 -ns 6 -ta 6; page -all; /* mlr14 * * This test will test the fill character function. * Also the truncation bit will be turned ON but we will specify that * we do not expect a truncation fault. */ inst mlr -nt "Use fill char" -io 3 -fc* -tbn -mf1 idr ar rl 4 -mf2 ida reg rl 8; /* No desc statements are needed because all the defaults are correct. */ data 1 "abcd" -do -2; /* Split the 4 characters across a page boundary. */ data 2 "abcd" "****" -do -4; /* The fill characters go on a different page. */ page -all; /* mlr15 * * This is the same test as mlr14 except the fill characters will start on * one page and end on the next page. * we do not expect a truncation fault. */ inst mlr -nt "Fill X pg bound" -io 1 -fc* -tbn -mf1 idr ar rl 4 -mf2 ida reg ar rl 8; /* No desc statements are needed because all the defaults are correct. */ data 1 "abcd" -do -2; /* Split the 4 characters across a page boundary. */ data 2 "abcd**" "**" -do -6; /* The fill characters are split across a page boundary. */ page -all; /* mlr16 * * This test is designed to test truncation. We will expect the truncation * indicator to be ON. The truncation bit will be left OFF and so we will not * expect a truncation fault. */ inst mlr -nt "Trunc Ind ON" -mf2 ar -io 2 -ir tn; desc 1 -ns 8; desc 2 -ns 4; data 1 -do -4 "abcd" "1234"; data 2 -do -2 "abcd"; page -all; /* mlr17 * * This test is designed to test truncation. We will expect the truncation * indicator to be ON. This test is the same as mlr16 except that the * truncation bit in the instruction word will be set ON. This should * cause a truncation fault. We should be ready for it. */ inst mlr -nt "Take trunc fault" -tby -mf2 ar -io 2 -ir tn; desc 1 -ns 8; desc 2 -ns 4; data 1 -do -4 "abcd" "1234"; data 2 -do -2 "abcd"; page -all; /* mlr18 * * This test will try to move over a page of data. We will move 1088 words * containing the characters "cisl". */ inst mlr -nt "Move over 1 page" -io 1 -mf1 rl 4352 idb ar reg -mf2 rl 4352 idbar reg; data 1 -do -128 (1088) "cisl"; data 2 -do -128 (1088) "cisl"; page -all; /* mrl1 * * Just a simple test. Move one 9 bit character to another. */ inst mrl -nt "Move 1 (9) bit char"; desc 1 -ns 1; data 1 "a"; desc 2 -ns 1; data 2 "a"; page -all; /* mrl2 * * Move two characters that cross a page boundary. Note, we need AR * modification in order to set a data offset that is not a multiple * of the word size. By doing this we will move the data fields to * segments etd1 and etd2. */ inst mrl -nt "2 chars X page bound" -mf1 ar -mf2 ar; desc 1 -ns 2; desc 2 -ns 2; data 1 "ab" -do -1; data 2 "ab" -do -1; page -all; /* mrl3 * * This test will move 20 characters. The characters will start in the middle * of a word. The last two characters moved will cross a page boundary. * The instruction word will be moved so that its descriptors cross a * page boundary. */ inst mrl -nt "20 char X page bound (-io 1)" -io 1; desc 1 -cn 2 /* Effective address will point to a word boundary. * We will start the string at character 2. Note, when * we set up the data we have to enter the two characters * that we are not using. */ -ns 20; desc 2 -cn 2 -ns 20; data 1 -do -20 " " (5) "abcd" ; data 2 -do -20 000000 (5) "abcd" ; /* Skipped data in a result field * must be zeros since this is what * et initializes the test area * to be. */ page -all; /* mrl4 * * This test is the same as mrl3 except that the descriptors will be * referenced via indirect words. These indirect words will use no * modification so the descriptors and the data will still be in * segment etx. Also we will move the instruction word back * so that the second descriptor is on the 2nd page. */ inst mrl -nt "Same as prev - ind desc" -io 2 -mf1 id -mf2 id; desc 1 -ns 20 -cn 2; /* Note the order of the terms. */ desc 2 -cn 2 -ns 20; data 1 -do -20 " " (5) "abcd" ; data 2 -do -20 000 000 (5) "abcd" ; page -all; /* mrl5 * /* This test is the same as mrl4 except that the indirect words will * use index register modification. */ inst mrl -nt "Same as prev - use indexes" -io 2 -mf2 idr -mf1 idr; /* Note order of mf terms. */ desc 1 -cn 2 -ns 20; desc 2 -cn 2 -ns 20; data 1 -do -20 " " (5) "abcd" ; data 2 -do -20 000 000 (5) "abcd" ; page -all; /* mrl6 * /* This test is the same as mrl4 except that the indirect words will * use AR modification. This will force ET to place the descriptors and * the data fields in segments eti1 and eti2. */ inst mrl -nt "Ind with AR mod" -io 2 -mf2 ida -mf1 ida; desc 1 -cn 2 -ns 20; desc 2 -cn 2 -ns 20; data 1 -do -20 " " (5) "abcd" ; data 2 -do -20 000 000 (5) "abcd" ; page -all; /* mrl7 * * This test is the same as the test mrl3 except that the descriptors * will use REG and RL modification. */ inst mrl -nt "Ind with REG 7. RL mod" -io 1 -mf2 reg rl 20 -mf1 rl 20 reg; desc 1 -cn 2; desc 2 -cn 2; data 1 -do -20 " " (5) "abcd" ; data 2 -do -20 000 000 (5) "abcd" ; page -all; /* mrl8 * * This test is the same as the test mrl3 except that the descriptors * will use AR, REG and RL modification. */ inst mrl -nt "Desc use AR,REG,& RL mod" -io 1 -mf1 reg ar rl 20 -mf2 rl 20 ar reg; desc 1 -cn 2; desc 2 -cn 2; data 1 -do -20 " " (5) "abcd" ; data 2 -do -20 000 000 (5) "abcd" ; page -all; /* mrl9 * * This test is the same as the test mrl3 except that the descriptors * will use AR, REG and RL modification AND we will use indirect descriptors. * We will not have any modification in the indirect words so the descriptors * will still be in segment etx. */ inst mrl -nt "Same as prev - use ind" -io 1 -mf1 rl 20 ar /* This puts the data in etd1. */ reg /* Use index register 1.. */ id /* This adds indirect descriptors. */ -mf2 id rl 20 reg ar; desc 1 -cn 2; desc 2 -cn 2; data 1 -do -20 " " (5) "abcd" ; data 2 -do -20 000 000 (5) "abcd" ; page -all; /* mrl10 * * This test is the same as the test mrl3 except that the descriptors * will use AR, REG and RL modification AND we will use indirect descriptors. * The indirect words will use both reg and ar modification. */ inst mrl -nt "Desc: AR,RL,REG Ind: AR,REG" -io 1 -mf1 rl 20 ar /* This puts the data in etd1. */ reg /* Use index register 1.. */ idb /* This adds indirect descriptors. Descriptors will go in * segments eti1 and eti2. */ -mf2 idb rl 20 reg ar; desc 1 -cn 2; desc 2 -cn 2; data 1 -do -20 " " (5) "abcd" ; data 2 -do -20 000 000 (5) "abcd" ; page -all; /* mrl11 * * This test will move 6 6 bit characters. Both strings will have 3 characters * on each side of the page boundary. The descriptor 2 data will be offset 4 * 9 bit characters but will specify a "cn" field of 3 so the effective starting * address will be the same as descriptor 1. All possible modification will be * used. Descriptor 1 will also use RL modification. */ inst mrl -nt "6 bit chars X pg bound" -mf1 rl 6 idb ar reg -mf2 reg ar idb; desc 1 -ta 6; desc 2 -cn 3 -ta 6 -ns 6; data 1 -do -2 212223242526; data 2 -do -4 (2) 000 /* We must fill in the unused 3 six bit characters. */ 212223242526; /* The actual data result field. */ page -all; /* mrl12 * * This test will move 3 4 bit characters. Below is a description of what is * going on. EA is the effective address of the descriptor. * * string 1 EA 1 | 2 3 * --------------------------------------------------- * char addr 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 * --------------------------------------------------- * string 2 EA 1 2 | 3 * * All possible modification will be used. Descriptor 2 will use RL mod. */ inst mrl -nt "4 bit chars" -mf1 idb ar reg -mf2 reg ar idb rl 3; desc 1 -ta 4 -cn 1 -ns 3; desc 2 -cn 6 -ta 4; data 1 011 253 -do -1; data 2 -do -4 000000000 232 26; page -all; /* mrl13 * * This test will move 6 9 bit characters into 6 6 bit characters. * Both strings will be split in the middle across a page boundary. */ inst mrl -nt "9 bit chars into 6 bit chars" -mf1 ar reg idr -mf2 reg ar idb; data 1 -do -3 " te" "st "; data 2 -do -2 406445 636440; desc 1 -ns 6; desc 2 -ns 6 -ta 6; page -all; /* mrl14 * * This test will test the fill character function. * Also the truncation bit will be turned ON but we will specify that * we do not expect a truncation fault. */ inst mrl -nt "Use fill char" -io 3 -fc* -tbn -mf1 idr ar rl 4 -mf2 ida reg rl 8; /* No desc statements are needed because all the defaults are correct. */ data 1 "abcd" -do -2; /* Split the 4 characters across a page boundary. */ data 2 "****" "abcd" -do -4; /* The fill characters go on a different page. */ page -all; /* mrl15 * * This is the same test as mrl14 except the fill characters will start on * one page and end on the next page. * we do not expect a truncation fault. */ inst mrl -nt "Fill X pg bound" -io 1 -fc* -tbn -mf1 idr ar rl 4 -mf2 ida reg ar rl 8; /* No desc statements are needed because all the defaults are correct. */ data 1 "abcd" -do -2; /* Split the 4 characters across a page boundary. */ data 2 "**" "**abcd" -do -2; /* The fill characters are split across a page boundary. */ page -all; /* mrl16 * * This test is designed to test truncation. We will expect the truncation * indicator to be ON. The truncation bit will be left OFF and so we will not * expect a truncation fault. */ inst mrl -nt "Trunc Ind ON" -mf2 ar -io 2 -ir tn; desc 1 -ns 8; desc 2 -ns 4; data 1 -do -4 "abcd" "1234"; data 2 -do -2 "1234"; page -all; /* mrl17 * * This test is designed to test truncation. We will expect the truncation * indicator to be ON. This test is the same as mrl16 except that the * truncation bit in the instruction word will be set ON. This should * cause a truncation fault. We should be ready for it. */ inst mrl -nt "Take trunc fault" -tby -mf2 ar -io 2 -ir tn; desc 1 -ns 8; desc 2 -ns 4; data 1 -do -4 "abcd" "1234"; data 2 -do -2 "1234"; page -all; /* mrl18 * * This test will try to move over a page of data. We will move 1088 words * containing the characters "cisl". */ inst mrl -nt "Move over 1 page" -io 1 -mf1 rl 4352 idb ar reg -mf2 rl 4352 idbar reg; data 1 -do -128 (1088) "cisl"; data 2 -do -128 (1088) "cisl"; page -all; /* mvt 1 * * Just a simple test. Table is "0123". result = "01233210". */ inst mvt -nt "Simple test with 9 bit chars"; desc 1 -ns 8; desc 2 -ns 8; data 1 000 001 002 003 003 002 001 000; /* 9 bit characters used as indexes. */ data 2 "01233210"; data 3 "0123"; page -all; /* mvt 2 * * Same test as mvt 1 except that the data fields have been move across * a page boundary. */ inst mvt -nt "Same as prev - fields X pg bound" -io 1; desc 1 -ns 8; desc 2 -ns 8; data 1 -do -4 000 001 002 003 003 002 001 000; data 2 -do -4 "0123" "3210"; data 3 "0123"; page -all; /* mvt 3 * * Same test as mvt 2 except we will add a lot of modification and adjust * that data fields so that they do not begin on WORD boundaries. */ inst mvt -nt "Same as prev - with mod" -io 3 -mf1 rl 8 ar reg idb -mf2 rl 8 ar reg idb -mf3 ar reg; /* No desc statements needed since rl mod specified and other defaults OK. */ data 1 -do -2 000 001 002 003 003 002 001 000; data 2 -do -2 "01" "233210"; data 3 "0123"; page -all; /* mvt 4 * * This test will use a fill character. The table will have 110 characters * but we should only reference 5 of them. */ inst mvt -nt "Use fill characters" -io 1 -fce /* Fill character is "e" = 145 octal. */ -mf1 ar -mf2 ar -mf3 ar; desc 1 -ns 3; desc 2 -ns 8; /* L2 > L1 => use of fill character. */ /* There are no legal fields we can specify with a desc 3 statement * for this instruction. */ data 1 -do -1 "c" "ba"; data 2 -do -5 "32155" "555"; data 3 -do -100 (97) "*" /* These characters in table never used. */ "123" "45" (9) "*"; page -all; /* mvt 5 * * Test page faults when first character of desc 1 and 2 are * at the end of a page. */ inst mvt -nt"check special page fault 1" -io 1; desc 1 -ns 9 -cn 3 ; desc 2 -ns 9 -cn 3 ; data 1 -do -4 " " 000 001 002 003 002 000 004 005 003 ; data 2 -do -4 000 000 000 "character" ; data 3 "charted" ; page -all ; /* mvt 6 * * Test page faults when last character of desc 1 and 2 are on a new page. * */ inst mvt -nt "check special page fault 2" -io 1 ; desc 1 -ns 9 ; desc 2 -ns 9 ; data 1 -do -8 000 001 002 003 002 000 004 005 003 ; data 2 -do -8 "character" ; data 3 "charte" ; page -all ; /* mvt 7 * * Test direct data movement for data 1 and 2 . * Also test moving data across 3 pages. To move more than * 4096 characters of data register length modification must be used. */ inst mvt -nt "dir desc. 3 page move; FCOs PHAFPG179 & 181 required on L68 CPU" -mf1 rl 4112 -mf2 rl 4112 ; desc 1 -cn 1 ; data 1 -do -4 " " (257) 000001002003004005006007010011012013014015016017 ; data 2 -do -4 (257) "abcdefghijklmnop" ; data 3 "abcdefghijklmnop" ; page -all ; /* mvt 8 * * Test address register usage for data 1 and 2. Also test moving data across * 3 pages. All descriptors are direct. * Also use register length modification. */ inst mvt -nt "tst ar1&ar2. 3 pg move;FCOs PHAFPG179 & 181 required on L68 CPU" -io 2 -mf1 ar rl 4112 -mf2 ar rl 4112 ; desc 1 -cn 1 ; data 1 -do -4 " " (257) 000001002003004005006007010011012013014015016017 ; data 2 -do -4 (257) "abcdefghijklmnop" ; data 3 "abcdefghijklmnop" ; page -all ; /* mvt 9 * Test ar, reg, and register length modification for data 1 and 2. * Also test data movement of three pages. */ inst mvt -nt "tst ar,rg,rl. 3 pg mv; FCOs PHAFPG179 & 181 required on L68 CPU" -io 2 -mf1 ar reg rl 4112 -mf2 ar reg rl 4112 ; desc 1 -cn 1 ; data 1 -do -4 " " (257) 000001002003004005006007010011012013014015016017 ; data 2 -do -4 (257) "abcdefghijklmnop" ; data 3 "abcdefghijklmnop" ; page -all ; /* mvt 10 * * Test indirect referencing of descriptors 1 and 2. * Test register length modification and move data from 3 pages. */ inst mvt -nt "tst ind descs; FCOs PHAFPG179 & 181 required on L68 CPU" -io 1 -mf1 id rl 4112 -mf2 id rl 4112 ; desc 1 -cn 1 ; data 1 -do -4 " " (257) 000001002003004005006007010011012013014015016017 ; data 2 -do -4 (257) "abcdefghijklmnop" ; data 3 "abcdefghijklmnop" ; page -all ; /* mvt 11 * * Test indirect referencing of descriptors 1 and 2 with ar modification * of the indirect word. Also data is moved from 3 pages. */ inst mvt -nt "tst ida. 3 pgs moved; FCOs PHAFPG179 & 181 required on L68 CPU" -io 2 -mf1 ida rl 4112 -mf2 ida rl 4112 ; desc 1 -cn 1 ; data 1 -do -4 " " (257) 000001002003004005006007010011012013014015016017 ; data 2 -do -4 (257) "abcdefghijklmnop" ; data 3 "abcdefghijklmnop" ; page -all ; /* mvt 12 * * Test indirect referencing of descriptors 1 and 2 with reg modification * of the indirect word. Also data is moved from 3 pages. */ inst mvt -nt "tst idr, 3 pgs moved; FCOs PHAFPG179 & 181 required on L68 CPU" -io 1 -mf1 idr rl 4112 -mf2 idr rl 4112 ; desc 1 -cn 1 ; data 1 -do -4 " " (257) 000001002003004005006007010011012013014015016017 ; data 2 -do -4 (257) "abcdefghijklmnop" ; data 3 "abcdefghijklmnop" ; page -all ; /* mvt 13 * * Test indirect referencing of descriptors 1 and 2 with both * ar and reg modification of the indirect word. Also data is * moved from three pages. */ inst mvt -nt "tst idb. 3 pgs moved; FCOs PHAFPG179 & 181 required on L68 CPU" -io 2 -mf1 idb rl 4112 -mf2 idb rl 4112 ; desc 1 -cn 1 ; data 1 -do -4 " " (257) 000001002003004005006007010011012013014015016017 ; data 2 -do -4 (257) "abcdefghijklmnop" ; data 3 "abcdefghijklmnop" ; page -all ; /* mvt 14 * * Test indirect referencing of of descriptors 1 and 2 with * ar, reg, and reg length modification of the descriptors. * Data is moved from 3 pages. */ inst mvt -nt "tst ar,reg,rl,id.; FCOs PHAFPG179 & 181 required on L68 CPU" -mf1 id ar reg rl 4112 -mf2 id ar reg rl 4112 ; desc 1 -cn 1 ; data 1 -do -4 " " (257) 000001002003004005006007010011012013014015016017 ; data 2 -do -4 (257) "abcdefghijklmnop" ; data 3 "abcdefghijklmnop" ; page -all ; /* mvt 15 * * Test indirect referencing of descriptors 1 and 2 with ar * and reg modification of the indirect word. Also ar, reg, * and register length modification is applied to the * descriptors. Three pages of data is moved. */ inst mvt -nt "tst ar,reg,rl,idb; FCOs PHAFPG179 & 181 required on L68 CPU" -io 2 -mf1 idb ar reg rl 4112 -mf2 idb ar reg rl 4112 ; desc 1 -cn 1 ; data 1 -do -4 " " (257) 000001002003004005006007010011012013014015016017 ; data 2 -do -4 (257) "abcdefghijklmnop" ; data 3 "abcdefghijklmnop" ; page -all ; /* mvt 16 * * Test translation of 9 bit to 6 bit characters. Only direct descriptors * with no modification are used. All forms of modification and * indirection have been tested in previous tests. * This test has no truncation. * */ inst mvt -nt "9 to 6 bit chars" -fc ; desc 1 -ns 50 -cn 2 ; desc 2 -ns 50 -cn 5 -ta 6 ; data 1 -do 4068 " " (6) 000001002003004005006007010 ; data 2 -do 20 000000000060 (5) 616263414243440060 61626341 ; data 3 "0123abcd" (23) 000 020 ; page -all; /* mvt 17 * * Test translation of 9 to 6 `bit characters. * L1 is less than L2. String 2 is `blank filled. * */ inst mvt -nt "9 to 6 bit chars" -fc ; desc 1 -ns 28 -cn 2 ; desc 2 -ns 50 -cn 5 -ta 6 ; data 1 -do 4068 " " (6) 000001002003004005006007010 ; data 2 -do 20 000000000060 (3) 616263414243440060 (7) 202020 20 ; data 3 "0123abcd" (24) 000 020 ; page -all; /* mvt 18 * * Test translation of 9 to 6 bit characters. * L1 is greater than L2. Truncation fault is not taken. * */ inst mvt -nt "truncation but no fault" -ir tn ; desc 1 -ns 50 -cn 2 ; desc 2 -ns 28 -cn 5 -ta 6 ; data 1 -do 4068 " " (6) 000001002003004005006007010 ; data 2 -do 20 000000000060 (3) 616263414243440060 ; data 3 "0123abcd" (24) 000 020 ; page -all; /* mvt 19 * * Test translation of 6 bit to 9 bit characters. Only direct * descriptors with no modification are used. * This test has no truncation. * */ inst mvt -nt "6-9 bit. no truncation" -fc ; desc 1 -ns 63 -cn 3 -ta 6 ; desc 2 -ns 63 ; data 1 -do -20 000000 (7) 000102030405060710 ; data 2 -do -28 (7) 141142143144060061062063000 ; data 3 "abcd0123" (24) 000 040 ; page -all; /* mvt 20 * * Test translation of 6 bit to 9 bit characters. * L1 is less than L2. String 2 is blank filled. * */ inst mvt -nt "6-9 bit. blank fill" -fc ; desc 1 -ns 29 -cn 3 -ta 6 ; desc 2 -ns 63 ; data 1 -do -20 000000 (7) 000102030405060710 ; data 2 -do -28 (3) 141142143144060061062063000 141142 (34) 040 ; data 3 "abcd0123" (24) 000 040 ; page -all; /* mvt 21 * * Test translation of 6 bit to 9 bit characters. * L1 is greater than L2. Truncation fault is not taken. * */ inst mvt -nt "6-9 bit. truncation" -ir tn -fc ; desc 1 -ns 63 -cn 3 -ta 6 ; desc 2 -ns 29 ; data 1 -do -20 000000 (7) 000102030405060710 ; data 2 -do -28 (3) 141142143144060061062063000 141142 ; data 3 "abcd0123" (24) 000 040 ; page -all; /* mvt 22 * * Test translation of 4 bit characters. The test is made * with full descriptor modification. Data is placed across a * page boundary. * */ inst mvt -nt "4 bit char translation" -io 1 -mf1 idb ar reg rl 16 -mf2 idb ar reg rl 16 -mf3 ar reg ; desc 1 -ta 4 ; desc 2 -ta 4 ; data 1 -do -4 (2) 002215053176 ; data 2 -do -4 (2) 002215053176 ; data 3 000 001 002 003 004 005 006 007 010 011 012 013 014 015 016 017 ; page -all; /* mve1 * * Move 6 (9 bit) characters with zero -> "*" replacement. * All the fields including the micro op string will take faults * and cross a page boundary. */ inst mve -nt "zero rep, mod, faults" -io 3 -mf1 idb ar reg rl 6 -mf2 idb ar reg rl 2 -mf3 idb ar reg rl 6; /* No desc statements needed. */ data 1 -do -4 "0010" "23"; data 2 -do -1 124 /* mvza 4 */ 322; /* mvc 2 */ data 3 -do -3 "**1" "023"; page -all; /* mve2 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "9-9 simple test with no mod" -mf3 rl 31; desc 1 -ns 27; desc 2 -ns 26; data 1 /* arranged according mop use */ "0012" "0012" "0012" "1234" "4567" "-123" "123"; data 2 /* mops arranged in order */ 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 420 "* +- " /* change table with string shown */ 024 /* insm */ 344 /* mses sn is set */ 364; data 3 " 12" "**12" "$" " $12" "=" "*" "4567" "****" "-123" ";;;"; page -all; /* mve3 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "9-9offset inst. and desc mod" -io 2 -mf1 ida ar -mf2 reg -mf3 rl 31; desc 1 -ns 27; desc 2 -ns 26; data 1 /* arranged according mop use */ "0012" "0012" "0012" "1234" "4567" "-123" "123"; data 2 /* mops arranged in order */ 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 420 "* +- " /* change table with string shown */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 " 12" "**12" "$" " $12" "=" "*" "4567" "****" "-123" ";;;"; page -all; /* mve4 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "9-9 off inst desc mod d1 off" -io 2 -mf1 ida ar -mf2 idb ar -mf3 rl 31; desc 1 -ns 27; desc 2 -ns 26; data 1 /* arranged according mop use */ -do -7 "0012" "0012" "0012" "1234" "4567" "-123" "123"; data 2 /* mops arranged in order */ 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 420 "* +- " /* change table with string shown */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 " 12" "**12" "$" " $12" "=" "*" "4567" "****" "-123" ";;;"; page -all; /* mve5 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "9-9 d2 offset d1 offset" -io 2 -mf1 ida ar -mf2 idb ar -mf3 rl 31; desc 1 -ns 27; desc 2 -ns 26; data 1 /* arranged according mop use */ -do -7 "0012" "0012" "0012" "1234" "4567" "-123" "123"; data 2 /* mops arranged in order */ -do -13 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 420 "* +- " /* change table with string shown */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 " 12" "**12" "$" " $12" "=" "*" "4567" "****" "-123" ";;;"; page -all; /* mve6 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "9-9d3 offset d2 offset d1 offset" -io 3 -mf1 ida ar reg -mf2 idb ar -mf3 rl 31; desc 1 -ns 27; desc 2 -ns 26; data 1 /* arranged according mop use */ -do -7 "0012" "0012" "0012" "1234" "4567" "-123" "123"; data 2 /* mops arranged in order */ -do -13 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 420 "* +- " /* change table with string shown */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 -do -28 " 12" "**12" "$" " $12" "=" "*" "4567" "****" "-123" ";;;"; page -all; /* mve7 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "9-9data 1 totally on p0" -io 3 -mf1 ida ar reg rl 27 -mf2 idb ar -mf3 ar reg rl 31; desc 2 -ns 26; data 1 /* arranged according mop use */ -do -27 "0012" "0012" "0012" "1234" "4567" "-123" "123"; data 2 /* mops arranged in order */ -do -13 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 420 "* +- " /* change table with string shown */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 -do 30 " 12" "**12" "$" " $12" "=" "*" "4567" "****" "-123" ";;;"; page -all; /* mve8 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "9-9data 2 totally on p0" -io 3 -mf1 ida ar reg rl 27 -mf2 idb ar rl 26 -mf3 ar reg rl 31; /* no desc needed */ data 1 /* arranged according mop use */ -do -27 "0012" "0012" "0012" "1234" "4567" "-123" "123"; data 2 /* mops arranged in order */ -do -26 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 420 "* +- " /* change table with string shown */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 -do 30 " 12" "**12" "$" " $12" "=" "*" "4567" "****" "-123" ";;;"; page -all; /* mve9 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "9-9all data totally on p0" -io 3 -mf1 ida ar reg rl 27 -mf2 idb ar rl 26 -mf3 ar reg rl 31; /* no desc needed */ data 1 /* arranged according mop use */ -do -27 "0012" "0012" "0012" "1234" "4567" "-123" "123"; data 2 /* mops arranged in order */ -do -26 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 420 "* +- " /* change table with string shown */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 -do -31 " 12" "**12" "$" " $12" "=" "*" "4567" "****" "-123" ";;;"; page -all; /* mve10 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "9-9 all data on p0 all mod" -io 3 -mf1 idb ar reg rl 27 -mf2 idb ar reg rl 26 -mf3 ar reg rl 31; /* no desc needed */ data 1 /* arranged according mop use */ -do -27 "0012" "0012" "0012" "1234" "4567" "-123" "123"; data 2 /* mops arranged in order */ -do -26 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 420 "* +- " /* change table with string shown */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 -do -31 " 12" "**12" "$" " $12" "=" "*" "4567" "****" "-123" ";;;"; page -all; /* mve11 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "6-9 simple test with no mod" -mf3 rl 31; desc 1 -ta 6 -ns 27; desc 2 -ns 26; desc 3 -ta 9; data 1 /* arranged according mop use */ 606061626060616260606162616263646465666752616263616263; data 2 /* mops arranged in order */ 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 420 "* +- " /* change table with string shown */ 024 /* insm */ 344 /* mses sn is set */ 364; data 3 " 12" "**12" "$" " $12" "=" "*" "4567" "****" "*123" ";;;"; page -all; /* mve12 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "6-9 offset inst. and desc mod" -io 2 -mf1 ida ar -mf2 reg -mf3 rl 31; desc 1 -ta 6 -ns 27; desc 2 -ns 26; data 1 /* arranged according mop use */ 606061626060616260606162616263646465666752616263616263; data 2 /* mops arranged in order */ 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 420 "* +- " /* change table with string shown */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 " 12" "**12" "$" " $12" "=" "*" "4567" "****" "*123" ";;;"; page -all; /* mve13 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "6-9 desc mod d1 offset" -io 2 -mf1 ida ar -mf2 idb ar -mf3 rl 31; desc 1 -ta 6 -ns 27; desc 2 -ns 26; data 1 /* arranged according mop use */ -do -6 606061626060616260606162616263646465666752616263616263; data 2 /* mops arranged in order */ 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 420 "* +- " /* change table with string shown */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 " 12" "**12" "$" " $12" "=" "*" "4567" "****" "*123" ";;;"; page -all; /* mve14 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "6-9 d2 offset d1 offset" -io 2 -mf1 ida ar -mf2 idb ar -mf3 rl 31; desc 1 -ta 6 -ns 27; desc 2 -ns 26; data 1 /* arranged according mop use */ -do -6 606061626060616260606162616263646465666752616263616263; data 2 /* mops arranged in order */ -do -13 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 420 "* +- " /* change table with string shown */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 " 12" "**12" "$" " $12" "=" "*" "4567" "****" "*123" ";;;"; page -all; /* mve15 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "6-9 d3 offset and d2 and d1" -io 3 -mf1 ida ar reg -mf2 idb ar -mf3 rl 31; desc 1 -ta 6 -ns 27; desc 2 -ns 26; data 1 /* arranged according mop use */ -do -6 606061626060616260606162616263646465666752616263616263; data 2 /* mops arranged in order */ -do -13 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 420 "* +- " /* change table with string shown */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 -do -28 " 12" "**12" "$" " $12" "=" "*" "4567" "****" "*123" ";;;"; page -all; /* mve16 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "6-9 data 1 totally on p0" -io 3 -mf1 ida ar reg rl 27 -mf2 idb ar -mf3 ar reg rl 31; desc 1 -ta 6; desc 2 -ns 26; data 1 /* arranged according mop use */ -do -28 606061626060616260606162616263646465666752616263616263; data 2 /* mops arranged in order */ -do -13 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 420 "* +- " /* change table with string shown */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 -do 30 " 12" "**12" "$" " $12" "=" "*" "4567" "****" "*123" ";;;"; page -all; /* mve17 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "6-9 data 2 totally on p0" -io 3 -mf1 ida ar reg rl 27 -mf2 idb ar rl 26 -mf3 ar reg rl 31; desc 1 -ta 6; data 1 /* arranged according mop use */ 606061626060616260606162616263646465666752616263616263; data 2 /* mops arranged in order */ -do -26 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 420 "* +- " /* change table with string shown */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 -do 30 " 12" "**12" "$" " $12" "=" "*" "4567" "****" "*123" ";;;"; page -all; /* mve18 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "6-9 all data totally on p0" -io 3 -mf1 ida ar reg rl 27 -mf2 idb ar rl 26 -mf3 ar reg rl 31; desc 1 -ta 6; data 1 /* arranged according mop use */ -do -28 606061626060616260606162616263646465666752616263616263; data 2 /* mops arranged in order */ -do -26 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 420 "* +- " /* change table with string shown */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 -do -31 " 12" "**12" "$" " $12" "=" "*" "4567" "****" "*123" ";;;"; page -all; /* mve19 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "6-9 all data on p0 all mod" -io 3 -mf1 idb ar reg rl 27 -mf2 idb ar reg rl 26 -mf3 ar reg rl 31; desc 1 -ta 6; data 1 /* arranged according mop use */ -do -28 606061626060616260606162616263646465666752616263616263; data 2 /* mops arranged in order */ -do -26 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 420 "* +- " /* change table with string shown */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 -do -31 " 12" "**12" "$" " $12" "=" "*" "4567" "****" "*123" ";;;"; page -all; /* mve20 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "9-6 simple test with no mod" -mf3 rl 31; desc 1 -ns 27; desc 2 -ns 26; desc 3 -ta 6; data 1 /* arranged according mop use */ "0012" "0012" "0012" "1234" "4567" "-123" "123"; data 2 /* mops arranged in order */ /* change table and mvzb */ 420020054060052053073033000 104 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 024 /* insm */ 344 /* mses sn is set */ 364; data 3 20206162545461625320205361627554646566672020202055616263616263; page -all; /* mve21 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "9-6 offset inst. and desc mod" -io 2 -mf1 ida ar -mf2 reg -mf3 rl 31; desc 1 -ns 27; desc 2 -ns 26; desc 3 -ta 6; data 1 /* arranged according mop use */ "0012" "0012" "0012" "1234" "4567" "-123" "123"; data 2 /* mops arranged in order */ /* change table and mvzb */ 420020054060052053073033000 104 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 20206162545461625320205361627554646566672020202055616263616263; page -all; /* mve22 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "9-6 desc mod d1 offset" -io 2 -mf1 ida ar -mf2 idb ar -mf3 rl 31; desc 1 -ns 27; desc 2 -ns 26; desc 3 -ta 6; data 1 /* arranged according mop use */ -do -7 "0012" "0012" "0012" "1234" "4567" "-123" "123"; data 2 /* mops arranged in order */ /* change table and mvzb */ 420020054060052053073033000 104 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 20206162545461625320205361627554646566672020202055616263616263; page -all; /* mve23 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "9-6 d2 offset d1 offset" -io 2 -mf1 ida ar -mf2 idb ar -mf3 rl 31; desc 1 -ns 27; desc 2 -ns 26; desc 3 -ta 6; data 1 /* arranged according mop use */ -do -7 "0012" "0012" "0012" "1234" "4567" "-123" "123"; data 2 /* mops arranged in order */ -do -13 /* change table and mvzb */ 420020054060052053073033000 104 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 20206162545461625320205361627554646566672020202055616263616263; page -all; /* mve24 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "9-6 d3 offset d2 and d1" -io 3 -mf1 ida ar reg -mf2 idb ar -mf3 rl 31; desc 1 -ns 27; desc 2 -ns 26; desc 3 -ta 6; data 1 /* arranged according mop use */ -do -7 "0012" "0012" "0012" "1234" "4567" "-123" "123"; data 2 /* mops arranged in order */ -do -13 /* change table and mvzb */ 420020054060052053073033000 104 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 -do -28 20206162545461625320205361627554646566672020202055616263616263; page -all; /* mve25 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "9-6 data 1 totally on p0" -io 3 -mf1 ida ar reg rl 27 -mf2 idb ar -mf3 ar reg rl 31; desc 2 -ns 26; desc 3 -ta 6; data 1 /* arranged according mop use */ -do -27 "0012" "0012" "0012" "1234" "4567" "-123" "123"; data 2 /* mops arranged in order */ -do -13 /* change table and mvzb */ 420020054060052053073033000 104 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 -do 30 20206162545461625320205361627554646566672020202055616263616263; page -all; /* mve26 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "9-6 data 2 totally on p0" -io 3 -mf1 ida ar reg rl 27 -mf2 idb ar rl 26 -mf3 ar reg rl 31; desc 3 -ta 6; data 1 /* arranged according mop use */ -do -27 "0012" "0012" "0012" "1234" "4567" "-123" "123"; data 2 /* mops arranged in order */ -do -26 /* change table and mvzb */ 420020054060052053073033000 104 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 -do -12 20206162545461625320205361627554646566672020202055616263616263; page -all; /* mve27 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "9-6 all data totally on p0" -mf1 ida ar reg rl 27 -mf2 idb ar rl 26 -mf3 ar reg rl 31; desc 3 -ta 6; data 1 /* arranged according mop use */ -do -27 "0012" "0012" "0012" "1234" "4567" "-123" "123"; data 2 /* mops arranged in order */ -do -26 /* change table and mvzb */ 420020054060052053073033000 104 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 -do -32 20206162545461625320205361627554646566672020202055616263616263; page -all; /* mve28 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "9-6 all data on p0 all mod" -io 3 -mf1 idb ar reg rl 27 -mf2 idb ar reg rl 26 -mf3 ar reg rl 31; desc 3 -ta 6; data 1 /* arranged according mop use */ -do -27 "0012" "0012" "0012" "1234" "4567" "-123" "123"; data 2 /* mops arranged in order */ -do -26 /* change table and mvzb */ 420020054060052053073033000 104 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 -do -32 20206162545461625320205361627554646566672020202055616263616263; page -all; /* mve29 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "6-6 simple test with no mod" -mf3 rl 31; desc 1 -ta 6 -ns 27; desc 2 -ns 26; desc 3 -ta 6; data 1 /* arranged according mop use */ 000001020000010200000102010203040405060752010203010203; data 2 /* mops arranged in order */ /* change table and mvzb */ 420020054060052053073033000 104 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 024 /* insm */ 344 /* mses sn is set */ 364; data 3 20200102545401025320205301027554040506072020202052010203616263; page -all; /* mve30 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "6-6 offset inst. and desc mod" -io 2 -mf1 ida ar -mf2 reg -mf3 rl 31; desc 1 -ta 6 -ns 27; desc 2 -ns 26; desc 3 -ta 6; data 1 /* arranged according mop use */ 000001020000010200000102010203040405060752010203010203; data 2 /* mops arranged in order */ /* change table and mvzb */ 420020054060052053073033000 104 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 20200102545401025320205301027554040506072020202052010203616263; page -all; /* mve31 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "6-6 desc mod d1 offset" -io 2 -mf1 ida ar -mf2 idb ar -mf3 rl 31; desc 1 -ta 6 -ns 27; desc 2 -ns 26; desc 3 -ta 6; data 1 /* arranged according mop use */ -do -6 000001020000010200000102010203040405060752010203010203; data 2 /* mops arranged in order */ /* change table and mvzb */ 420020054060052053073033000 104 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 20200102545401025320205301027554040506072020202052010203616263; page -all; /* mve32 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "6-6 d2 offset d1 offset" -io 2 -mf1 ida ar -mf2 idb ar -mf3 rl 31; desc 1 -ta 6 -ns 27; desc 2 -ns 26; desc 3 -ta 6; data 1 /* arranged according mop use */ -do -6 000001020000010200000102010203040405060752010203010203; data 2 /* mops arranged in order */ -do -13 /* change table and mvzb */ 420020054060052053073033000 104 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 20200102545401025320205301027554040506072020202052010203616263; page -all; /* mve33 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "6-6 d3 offset and d1 and d2" -io 3 -mf1 ida ar reg -mf2 idb ar -mf3 rl 31; desc 1 -ta 6 -ns 27; desc 2 -ns 26; desc 3 -ta 6; data 1 /* arranged according mop use */ -do -6 000001020000010200000102010203040405060752010203010203; data 2 /* mops arranged in order */ -do -13 /* change table and mvzb */ 420020054060052053073033000 104 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 -do -28 20200102545401025320205301027554040506072020202052010203616263; page -all; /* mve34 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "6-6 data 1 totally on p0" -io 3 -mf1 ida ar reg rl 27 -mf2 idb ar -mf3 ar reg rl 31; desc 1 -ta 6; desc 2 -ns 26; desc 3 -ta 6; data 1 /* arranged according mop use */ -do -28 000001020000010200000102010203040405060752010203010203; data 2 /* mops arranged in order */ -do -13 /* change table and mvzb */ 420020054060052053073033000 104 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 -do 30 20200102545401025320205301027554040506072020202052010203616263; page -all; /* mve35 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "6-6 data 2 totally on p0" -io 3 -mf1 ida ar reg rl 27 -mf2 idb ar rl 26 -mf3 ar reg rl 31; desc 1 -ta 6; desc 3 -ta 6; data 1 /* arranged according mop use */ -do -28 000001020000010200000102010203040405060752010203010203; data 2 /* mops arranged in order */ -do -26 /* change table and mvzb */ 420020054060052053073033000 104 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 -do -12 20200102545401025320205301027554040506072020202052010203616263; page -all; /* mve36 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "6-6 all data totally on p0" -mf1 ida ar reg rl 27 -mf2 idb ar rl 26 -mf3 ar reg rl 31; desc 1 -ta 6; desc 3 -ta 6; data 1 /* arranged according mop use */ -do -28 000001020000010200000102010203040405060752010203010203; data 2 /* mops arranged in order */ -do -26 /* change table and mvzb */ 420020054060052053073033000 104 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 -do -32 20200102545401025320205301027554040506072020202052010203616263; page -all; /* mve37 * this test uses a sequence of micro op strings * that are appropriate for alpha numeric data. * each string is input to et such that it is * explained via a comment after each mop. * this particular mop sequence and the sending string is * used for all 6 and 9 bit tests with mod done * on descriptor access and data placement. * */ inst mve -nt "6-6 all data on p0 all mod" -io 3 -mf1 idb ar reg rl 27 -mf2 idb ar reg rl 26 -mf3 ar reg rl 31; desc 1 -ta 6; desc 3 -ta 6; data 1 /* arranged according mop use */ -do -28 000001020000010200000102010203040405060752010203010203; data 2 /* mops arranged in order */ -do -26 /* change table and mvzb */ 420020054060052053073033000 104 060 /* ses es reset */ 124 /* mvza */ 060 /* ses es reset */ 050 /* enf for $ insert */ 064 /* ses es reset and bz set */ 164 /* mflc */ 200075 /* insb with = */ 060 /* ses es reset */ 220076 /* insa with " not used since es=0 */ 304 /* ign */ 324 /* mvc */ 024 /* insm */ 344 /* mses sn is set */ 364; /* mors */ data 3 -do -32 20200102545401025320205301027554040506072020202052010203616263; page -all; /* tct1 * * Out table will be indexed by the characters "abcde". "b" & "e" are the two * non zero entries. Start off with a simple test */ inst tct -nt "Simple test"; desc 1 -ns 4; data 1 "aceb"; data 2 (97) "*" /* These characters should never be referenced. */ 000 /* "a" */ "b" 000 /* "c" */ "d" 000 ; /* "e" */ data 3 "b" 000 000 003; page -all; /* tct2 * * Same as tct1 only we will move the data fields across page boundaries and * add modification. */ inst tct -nt "Same as prev - fields X pg bound" -io 3 -mf1 rl 4 ar reg idb -mf2 ar reg /* RL and ID mod NOT allowed for descriptors 2 & 3. */ -mf3 reg ar; data 1 -do -3 "aceb"; data 2 -do -100 (97) "*" /* These characters should never be referenced. */ 000 /* "a" */ "b" 000 /* "c" */ "d" 000 ; /* "e" */ data 3 "b" 000 000 003; page -all; /* tct3 * * Same as tct2 except string 1 will be changed so we will have a * tally runout. */ inst tct -nt "Test tally runout" -io 2 -ir tr -mf1 ar idb reg rl 18 -mf2 ar reg -mf3 ar reg; data 1 -do -9 (6) "ace"; data 2 -do -100 (97) "*" 000 "b" 000 "d" 000; data 3 000 000 000 022; page -all; /* tct4 * * Test using 6 bit characters. The -cn field will specify that the string * starts at the 5th character of the word (last character). */ inst tct -nt "Use 6 bit characters" -io 1 -mf1 idb reg ar -mf2 reg ar -mf3 ar reg; desc 1 -ns 10 -cn 5 -ta 6; data 1 -do -6 /* Test string is 0 1 2 3 4 5 6 7 10 11 */ 0606060606 /* Filler, not part of string, 1st 5 characters of word. */ 010203 /* Page boundary. */ 040506 071011; data 2 -do -4 000 000 000 000 000 000 006 000 000 000; data 3 -do 4 006 000000 006; page -all; /* tct5 * * The indexes in string 1 will be 4 bit characters. */ inst tct -nt "Use 4 bit characters" -io 2 -mf1 idb ar reg -mf2 ar reg -mf3 ar reg; desc 1 -ns 8 -ta 4 /* 4 bit characters. */ -cn 2; /* First 2 characters of word not used. * This is the first 9 bit character. */ data 1 -do -2 000 /* The first two characters of the word - skipped. */ 001 /* Characters "0" and "1". In page 1. */ 043 105 147; /* "234567" (4 bit) in page 2. */ data 2 -do -4 000 000 000 000 /* All in page 1. Represent index values 0,1,2,3 */ 000 "*" 000 000; /* In page 2. Correspond to index values 4,5,6,7 */ data 3 "*" 000 000 005; page -all; /* tct 6 * * Test loading across three pages. One character loaded from * page 1 and 3. Test 6146 characters. Tally runout indicator * is set. */ inst tct -nt "(6 bit)no modif. tally is set" -io 1 -ir tr -mf1 rl 6146 ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 000102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 000 000 014 002 ; page -all ; /* tct 7 * * Test loading data across three pages. One character is loaded * from page 1 and 3 with 6146 characters tested. A nonzero * character is found in the test table. */ inst tct -nt "(6 bit)no mod. a nonzero entry" -mf1 rl 6146 ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 310102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 141 000 006 001 ; page -all ; /* tct 8 * * Test similiar to tct 6. Test ar, reg, and rl for descriptor 1. * */ inst tct -nt "(6 bit)ar,reg,rl. tally runout" -io 2 -ir tr -mf1 ar reg rl 6146 ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 000102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 000 000 014 002 ; page -all ; /* tct 9 * * Test similiar to tct 7. Test ar, reg, and rl modification * for descriptor 1. Test ar and reg modification for descriptor 1 and 2. * */ inst tct -nt "(6 bit)ar,reg,rl.no tally runout" -io 1 -mf1 ar reg rl 6146 -mf2 ar reg -mf3 ar reg ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 310102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 141 000 006 001 ; page -all ; /* tct 10 * * Test similiar to tct 6. Test indirect referencing * of descriptor 1. Test ar and reg modification for descriptors 2 and 3. */ inst tct -nt "(6 bit)test id. tally runout" -ir tr -mf1 id rl 6146 -mf2 ar reg -mf3 ar reg ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 000102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 000 000 014 002 ; page -all ; /* tct 11 * * Test similiar to tct 7. Test indirect referencing of * descriptor 1. * */ inst tct -nt "(6 bit)test id. no tally runout" -io 2 -mf1 id rl 6146 ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 310102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 141 000 006 001 ; page -all ; /* tct 12 * * Test similiar to tct 6. Test indirect referencing of descriptor 1 * with ar modification of the indirect word. Also test reg * modification of descriptors 2 and 3. * */ inst tct -nt "(6 bit)test ida. tally runout" -io 1 -ir tr -mf1 ida rl 6146 -mf2 reg -mf3 reg ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 000102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 000 000 014 002 ; page -all ; /* tct 13 * * Test similiar to tct 7. Test indirect referencing of descriptor 1 * with ar modification of the indirect word. Also test ar * modification of descriptors 2 and 3. * */ inst tct -nt "(6 bit)test ida. no tally runout" -mf1 ida rl 6146 -mf2 ar -mf3 ar ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 310102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 141 000 006 001 ; page -all ; /* tct 14 * * Test similiar to tct 6. Test indirect referencing of decriptor 1 * with ar and reg modification of the indirect word. * */ inst tct -nt "(6 bit)test idb. tally runout" -io 2 -ir tr -mf1 idb rl 6146 ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 000102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 000 000 014 002 ; page -all ; /* tct 15 * * Test similiar to tct 7. Test indirect referencing of descriptor 1 * with ar and reg modification of the indirect word. * */ inst tct -nt "(6 bit)test idb. no tally runout" -mf1 idb rl 6146 ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 310102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 141 000 006 001 ; page -all ; /* tct 16 * * Test similiar to tct 6. Test indirect referencing of descriptor 1 * with ar and reg modification of the indirect word. Further the * descriptor has ar, reg, and rl modification. * */ inst tct -nt "(6 bit)idb,ar,reg. tally runout" -io 1 -ir tr -mf1 idb ar reg rl 6146 ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 000102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 000 000 014 002 ; page -all ; /* tct 17 * * Test similiar to tct 7. Test indirect referencing of descriptor 1 * with ar and reg modification of the indirect word. Further the * descriptor has ar, reg, and rl modification. * */ inst tct -nt "(6bit)idb,ar,reg.no tally runout" -io 2 -mf1 idb ar reg rl 6146 ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 310102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 141 000 006 001 ; page -all ; /* tct 18 * * Test for character match on the first character of page 3. * Also, test idb, ar, reg, and rl of descriptor 1. Also, test * ar and reg modification of descriptors 2 and 3. * */ inst tct -nt "(6 bit)match 1st char of page 3" -io 1 -mf1 idb ar reg rl 6146 -mf2 reg ar -mf3 reg ar ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 (128) 000102030405060710111213141516172021222324252627 31 ; data 2 -do -4 (24) 000 000 141 ; data 3 141 000 014 001 ; page -all ; /* tct 19 * * Test for character match on the last character of page 1. * Also, test idb, ar, reg, and rl of descriptor 1. Also, test * ar and reg modification of descriptors 2 and 3. * */ inst tct -nt "(6 bit)match last char of page 1" -io 1 -mf1 idb ar reg rl 6146 -mf2 reg ar -mf3 reg ar ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 031 (128) 010203040506071011121314151617202122232425262700 (128) 000102030405060710111213141516172021222324252627 00 ; data 2 -do -4 (24) 000 000 141 ; data 3 141 000 000 000 ; page -all ; /* tctr1 * * Out table will be indexed by the characters "abcde". "b" & "e" are the two * non zero entries. Start off with a simple test */ inst tctr -nt "Simple test"; desc 1 -ns 4; data 1 "bace"; data 2 (97) "*" /* These characters should never be referenced. */ 000 /* "a" */ "b" 000 /* "c" */ "d" 000 ; /* "e" */ data 3 "b" 000 000 003; page -all; /* tctr2 * * Same as tctr1 only we will move the data fields across page boundaries and * add modification. */ inst tctr -nt "Same as prev - fields X pg bound" -io 3 -mf1 rl 4 ar reg idb -mf2 ar reg /* RL and ID mod NOT allowed for descriptors 2 & 3. */ -mf3 reg ar; data 1 -do -3 "bace"; data 2 -do -100 (97) "*" /* These characters should never be referenced. */ 000 /* "a" */ "b" 000 /* "c" */ "d" 000 ; /* "e" */ data 3 "b" 000 000 003; page -all; /* tctr3 * * Same as tctr2 except string 1 will be changed so we will have a * tally runout. */ inst tctr -nt "Test tally runout" -io 2 -ir tr -mf1 ar idb reg rl 18 -mf2 ar reg -mf3 ar reg; data 1 -do -9 (6) "ace"; data 2 -do -100 (97) "*" 000 "b" 000 "d" 000; data 3 000 000 000 022; page -all; /* tctr4 * * Test using 6 bit characters. The -cn field will specify that the string * starts at the 5th character of the word (last character). */ inst tctr -nt "Use 6 bit characters" -io 1 -mf1 idb reg ar -mf2 reg ar -mf3 ar reg; desc 1 -ns 10 -cn 5 -ta 6; data 1 -do -6 /* Test string is 0 1 2 3 4 5 6 7 10 11 */ 0606060606 /* Filler, not part of string, 1st 5 characters of word. */ 010203 /* Page boundary. */ 040506 071011; data 2 -do -4 000 000 000 000 000 000 006 000 000 000; data 3 -do 4 006 000000 003; page -all; /* tctr5 * * The indexes in string 1 will be 4 bit characters. */ inst tctr -nt "Use 4 bit characters" -io 2 -mf1 idb ar reg -mf2 ar reg -mf3 ar reg; desc 1 -ns 8 -ta 4 /* 4 bit characters. */ -cn 2; /* First 2 characters of word not used. * This is the first 9 bit character. */ data 1 -do -2 000 /* The first two characters of the word - skipped. */ 001 /* Characters "0" and "1". In page 1. */ 043 105 147; /* "234567" (4 bit) in page 2. */ data 2 -do -4 000 000 000 000 /* All in page 1. Represent index values 0,1,2,3 */ 000 "*" 000 000; /* In page 2. Correspond to index values 4,5,6,7 */ data 3 "*" 000 000 002; page -all; /* tctr 6 * * Test loading across three pages. One character loaded from * page 1 and 3. Test 6146 characters. Tally runout indicator * is set. */ inst tctr -nt "(6bit)no modif. tally is set" -io 1 -ir tr -mf1 rl 6146 ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 000102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 000 000 014 002 ; page -all ; /* tctr 7 * * Test loading data across three pages. One character is loaded * from page 1 and 3 with 6146 characters tested. A nonzero * character is found in the test table. */ inst tctr -nt "(6bit)no modif. a nonzero entry" -mf1 rl 6146 ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 310102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 141 000 006 000 ; page -all ; /* tctr 8 * * Test similiar to tctr 6. Test ar, reg, and rl for descriptor 1. * */ inst tctr -nt "(6bit)ar,reg,rl. tally runout" -io 2 -ir tr -mf1 ar reg rl 6146 ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 000102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 000 000 014 002 ; page -all ; /* tctr 9 * * Test similiar to tctr 7. Test ar, reg, and rl modification * for descriptor 1. Test ar and reg modification for descriptor 1 and 2. * */ inst tctr -nt "(6bit)ar,reg,rl. no tally runout" -io 1 -mf1 ar reg rl 6146 -mf2 ar reg -mf3 ar reg ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 310102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 141 000 006 000 ; page -all ; /* tctr 10 * * Test similiar to tctr 6. Test indirect referencing * of descriptor 1. Test ar and reg modification for descriptors 2 and 3. */ inst tctr -nt "(6bit)test id. tally runout" -ir tr -mf1 id rl 6146 -mf2 ar reg -mf3 ar reg ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 000102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 000 000 014 002 ; page -all ; /* tctr 11 * * Test similiar to tctr 7. Test indirect referencing of * descriptor 1. * */ inst tctr -nt "(6bit)test id. no tally runout" -io 2 -mf1 id rl 6146 ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 310102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 141 000 006 000 ; page -all ; /* tctr 12 * * Test similiar to tctr 6. Test indirect referencing of descriptor 1 * with ar modification of the indirect word. Also test reg * modification of descriptors 2 and 3. * */ inst tctr -nt "(6bit)test ida. tally runout" -io 1 -ir tr -mf1 ida rl 6146 -mf2 reg -mf3 reg ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 000102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 000 000 014 002 ; page -all ; /* tctr 13 * * Test similiar to tctr 7. Test indirect referencing of descriptor 1 * with ar modification of the indirect word. Also test ar * modification of descriptors 2 and 3. * */ inst tctr -nt "(6bit)test ida. no tally runout" -mf1 ida rl 6146 -mf2 ar -mf3 ar ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 310102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 141 000 006 000 ; page -all ; /* tctr 14 * * Test similiar to tctr 6. Test indirect referencing of decriptor 1 * with ar and reg modification of the indirect word. * */ inst tctr -nt "(6bit)test idb. tally runout" -io 2 -ir tr -mf1 idb rl 6146 ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 000102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 000 000 014 002 ; page -all ; /* tctr 15 * * Test similiar to tctr 7. Test indirect referencing of descriptor 1 * with ar and reg modification of the indirect word. * */ inst tctr -nt "(6bit)test idb. no tally runout" -mf1 idb rl 6146 ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 310102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 141 000 006 000 ; page -all ; /* tctr 16 * * Test similiar to tctr 6. Test indirect referencing of descriptor 1 * with ar and reg modification of the indirect word. Further the * descriptor has ar, reg, and rl modification. * */ inst tctr -nt "(6bit)idb,ar,reg. tally runout" -io 1 -ir tr -mf1 idb ar reg rl 6146 ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 000102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 000 000 014 002 ; page -all ; /* tctr 17 * * Test similiar to tctr 7. Test indirect referencing of descriptor 1 * with ar and reg modification of the indirect word. Further the * descriptor has ar, reg, and rl modification. * */ inst tctr -nt "(6bit)idb,ar,reg.no tally runout" -io 2 -mf1 idb ar reg rl 6146 ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 310102030405 (128) 000102030405060710111213141516172021222324252627 ; data 2 -do -4 (24) 000 000 141 ; data 3 141 000 006 000 ; page -all ; /* tctr 18 * * Test for character match on the first character of page 3. * Also, test idb, ar, reg, and rl of descriptor 1. Also, test * ar and reg modification of descriptors 2 and 3. * */ inst tctr -nt "(6bit)match 1st char of page 3" -io 1 -mf1 idb ar reg rl 6146 -mf2 reg ar -mf3 reg ar ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 000 (128) 010203040506071011121314151617202122232425262700 (128) 000102030405060710111213141516172021222324252627 31 ; data 2 -do -4 (24) 000 000 141 ; data 3 141 000 000 000 ; page -all ; /* tctr 19 * * Test for character match on the last character of page 1. * Also, test idb, ar, reg, and rl of descriptor 1. Also, test * ar and reg modification of descriptors 2 and 3. * */ inst tctr -nt "(6bit)match last char of page 1" -io 1 -mf1 idb ar reg rl 6146 -mf2 reg ar -mf3 reg ar ; desc 1 -cn 5 -ta 6 ; data 1 -do -4 " " 031 (128) 010203040506071011121314151617202122232425262700 (128) 000102030405060710111213141516172021222324252627 00 ; data 2 -do -4 (24) 000 000 141 ; data 3 141 000 014 001 ; page -all ; /* scm1 * * No match found in data 1 field so tally runout indicator will be ON. * CN field used in descriptor 1 and its data will cross a page boundary. */ inst scm -nt "Tally runout" -io 3 -mc /* Mask = (007) octal. */ -ir tr -mf1 ida -mf2 ar -mf3 ar reg; desc 1 -ns 3 -cn 3 -ta 9; desc 2 -ns 4 -cn 1; data 1 -do -4 000 000 000 /* Fill due to cn 3. */ 011 /* Part of string on page 1. */ 021 031; /* Part of string on page 2. */ data 2 -do -1 000 001; data 3 000 000 000 003; page -all; /* scm2 * simple test to determine if instruction * is working correctly. data is 9 bit * written in octal format to allow easy * comparison with the mask. this test * accesses all descriptors directly. * */ inst scm -nt "mc 8 9bit" -mc8; desc 1 -ns 8 -ta 9; data 1 060061062063064065066067; data 2 047; data 3 000 000 000 007; page -all; /* scm3 * same data as test 2 but with data 1 * split across page boundary. indirect * mod on desc 1 and 2. * */ inst scm -io 1 -nt "d1 split mc 8 9bit" -mc8 -mf1 idb -mf2 idb; desc 1 -ns 8 -ta 9; data 1 -do -4 060061062063 064065066067; data 2 047; data 3 000 000 000 007; page -all; /* scm4 * same data config as test 2 but with * full desc mod. * */ inst scm -io 3 -nt "d1 split mc8 9bit" -mc8 -mf1 idb ar reg rl 8 -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 9; data 1 060061062063064065066067; data 2 047; data 3 000 000 000 007; page -all; /* scm5 * test of the -cn option for desc 1 and 2 * along with a varied of """mode of desc mod. * both data strings are split across page bound. * */ inst scm -io 2 -nt "mc8 no match 9bit" -ir tr -mc8 -mf1 idb ar reg rl 6 -mf2 ar -mf3 ar; desc 1 -ta 9; desc 2 -cn 3; data 1 -do -2 000000 060061062063064066; data 2 -do -1 000 000 000 047; data 3 000 000 000 006 /* no match */; page -all; /* scm6 * data 1 wholey contained on page 0 and * data starting on word 0 of page 1; char 0. * all desc mod. * */ inst scm -io 1 -nt "mc8 d1 on p0 9bit" -mc8 -mf1 idb ar reg -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 9 -ns 2 -cn 2; data 1 -do -4 000000060067; data 2 047; data 3 000 000 000 001; page -all; /* scm7 * a variety of desc mod are used~ and the mask * is set so that there is no match. using the * using the same data as test 6. * */ inst scm -io 3 -nt "mc777 no match 9 bit" -mcÿ /* mc = 777 */ -mf1 idr ar rl 2 -mf2 ar reg -mf3 ar; desc 1 -ta 9 -cn 2; data 1 -do -4 000000060067; data 2 047; data 3 000 000 000 000; page -all; /* scm 8 * the next four tests use the maximum amount of * data for string 1 to test the paging of the data * strings. this test will make sure the inst is operating * correctly using no desc mod. * */ inst scm -nt "d1 covers 3pp 9bit" -mc /* mc = 001 */ /* mc = 001 */ -mf1 rl 4352 /* no desc mod.--all direct */; desc 1 -ta 9 ; data 1 -do -128 (4351) 062 066; data 2 067; data 3 000 000 010 377; page -all; /* scm9 * uses same data setup as test 8 but applies * maximum mod to descriptors. * */ inst scm -io 3 -nt "d1 covers 3 pp max desc mod 9b" -mc /* mc = 001 */ -mf1 idb ar reg rl 4352 -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 9; data 1 -do -128 (4351) 062 066; data 2 067; data 3 000 000 010 377; page -all; /* scm10 * this test specifically tests the -cn option ** for data 2 along with forcing it to cross * a page boundary. all desc mods are taken. * */ inst scm -io 1 -nt "d1 covers 3pp d2 split 9b" -mc /* mc = 001 */ -mf1 idb ar reg rl 4352 -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 9; desc 2 -cn 1; data 1 -do -128 (4351) 062 066; data 2 -do -2 000067 000000; data 3 000 000 010 377; page -all; /* scm11 * there will be no match on this test. also, * a variety of desc mods are taken. note * tr indicator will be on. * */ inst scm -io 1 -nt "no match d1 covers 3pp 9bit" -mc /* mc = 001 */ -ir tr -mf1 idb rl 4352 -mf2 ar reg /* mf3 is direct */; desc 1 -ta 9; desc 2 -cn 1; data 1 -do -128 (4352) 062; data 2 -do -2 000067 000000; data 3 000 000 010 400; page -all; /* scm12 * this starts the sequence of seven * four bit data tests. this first * test makes sure that the inst is working * correctly without any desc. mod. * */ inst scm -nt "simple test 4 bit" -mc /* mc = 001 */ /* mc = 001 */ /* all the desc. are direct */; desc 1 -ta 4 -ns 8; data 1 237 323 070 361 /* 1001 1111 1101 0011 0011 1000 1111 00001 */; data 2 360 /* 1111 */; data 3 000 000 000 001; page -all; /* scm13 * same as previous test but taking all of the * possible desc. mod. * */ inst scm -io 1 -nt " full desc mod 4bit" -mc /* mc = 001 */ /* mc = 001 */ -mf1 idb ar reg rl 8 -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 4; data 1 237 323 070 361; data 2 360; data 3 000 000 000 001; page -all; /* scm14 * changing the mask characters and offsetting * the first data string across a page boundary * with a variety of desc. mod. * */ inst scm -io 3 -nt "d1 split 4 bit" -mc? -mf1 ar -mf2 idb /* mf3 is direct */; desc 1 -ta 4 -ns 8; data 1 -do -2 237 323 /* page bound */ 070 361; data 2 360; data 3 000 000 000 000; page -all; /* scm15 * again using the same data but this time splitting * both strings across page bound. and exercising * the -cn option. all desc. mod. are taken. * */ inst scm -io 1 -nt "d1 and d2 split 4 bit" -mc? -mf1 idb ar reg -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 4 -ns 6 -cn 1; desc 2 -cn 3; data 1 -do -2 237 323 /* page boun. */ 070 361; data 2 -do -3 000 000 360 /* page bound. */ 000; data 3 000 000 000 000; page -all; /* scm16 * this time there will be no match with * the same parameters as test 15 with a mask of * 777. * */ inst scm -io 2 -nt "match on first char 4bit" -mcÿ -mf1 idb ar reg -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 4 -ns 8 -cn 1; desc 2 -cn 3; data 1 -do -2 237 323 070 361; data 2 -do -3 000 000 360 000; data 3 000 000 000 000; page -all; /* scm17 * the next three tests use the maximum amount * of data for string 1. this test uses a mask * of 000 but searches for a char which will not * match ( tr ind). no desc. mod. * */ inst scm -nt "mc=000 no mat d1 covers 3pp 4b" -mc /* mc = 000 */ -ir tr -mf1 rl 8704 /* all desc. are direct */; desc 1 -ta 4; data 1 -do -128 (1088) 237323070361; data 2 000; data 3 000 000 021 000; page -all; /* scm18 * this test will force a match on a middle * char. all desc mods. are taken. * */ inst scm -io 2 -nt "d1 covers 3pp 4bit" -mc /* mc = 001 */ -mf1 idb ar reg rl 8704 -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 4; data 1 -do -128 (1087) 237323070361 237 323 070 000; data 2 000; data 3 000 000 000 007; page -all; /* scm19 * this test puts the second string on page 0 * and tests the -cn option. * */ inst scm -io 2 -nt "d1 covers 3pp 4bit" -mc /* mc = 001 */ -mf1 ida ar reg rl 8704 -mf2 idr ar /* mf3 is direct */; desc 1 -ta 4 ; desc 2 -cn 3; data 1 -do -128 (1087) 237323070361 237323070000; data 2 -do -3 000 000 000 000; data 3 000 000 000 007; page -all; /* scm20 * the following tests use 6 bit data. * this test merely makes sure the instruction * is working correctly. direct mod on descriptors. * */ inst scm -nt "6bit" -mc /* all desc. are direct */; desc 1 -ta 6 -ns 12; data 1 414243444546 575051525353; data 2 57; data 3 000 000 000 006; page -all; /* scm21 * same as previous test but with first string * split across page bound. and a variety * of desc. mods taken. * */ inst scm -io 1 -nt "di split 6bit" -mc /* mc = 020 */ -mf1 ar reg -mf2 idb /* mf3 is direct */; desc 1 -ta 6 -ns 12; data 1 -do -4 414243444546 /*page bound */ 475051525354; data 2 67; data 3 000 000 000 006; page -all; /* scm22 * this is the same as test 22 except the mask * has been set to preclude a match (tr on) and different desc. mods. are taken. * */ inst scm -io 2 -nt "no match 6bit" -mc -ir tr -mf1 idb ar -mf2 ar reg -mf3 ar reg; desc 1 -ta 6 -ns 12; data 1 -do -4 414243444546 475051525354; data 2 67; data 3 000 000 000 014; page -all; /* scm23 *this test exercises all the desc. mods. * and tests the rl and -cn options. it also * changes the mask char . * * */ inst scm -io 3 -nt "full desc mod 6bit" -mc /* mc = 025 */ -mf1 idb ar reg rl 12 -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 6; desc 2 -cn 3; data 1 -do -6 414243444546475051 525354; data 2 -do -4 000000720000 /* page bound. */; data 3 000 000 000 011; page -all; /* scm24 * using the -cn option on both descriptors * direct mod on mf3 desc. * */ inst scm -io 2 -nt "d1 split 6bit" -mc /* mc = 025 */ -mf1 ar rl 5 -mf2 ar /* mf3 is direct */; desc 1 -ta 6 -cn 4; desc 2 -cn 2; data 1 -do -4 000000005100 /*page bound. */ 525354; data 2 -do -2 00007200 /* page bound. */; data 3 000 000 000 002; page -all; /* scm25 * this test and the next one uses the maximum amount * of char for string 1. this test forces a "no match" * condition (ir tr on) and takes the maximum mod. * on the desc. * */ inst scm -io 3 -nt "d1 covers 3pp no match 6b" -mc000 -ir tr -mf1 idb ar reg rl 6528 -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 6; data 1 -do -128 (1087) 515151515151 515151515153; data 2 52; data 3 000 000 014 600; page -all; /* scm26 * same as previous test but a match occurs * on the last char. * */ inst scm -io 2 -nt "d1 covers 3pp 6bit" -mc /* mc = 000 */ -mf1 idb ar reg rl 6528 -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 6; data 1 -do -128 (1087) 515151515151 515151515152; data 2 52; data 3 000 000 014 577; page -all; /* scmr1 * * Same as scm only we will change the data of string 2 so that there is * a match. */ inst scmr -nt "Same as scm but strings match" -io 2 -mc /* Mask = (007) octal. */ -mf1 ida -mf2 ar -mf3 ar reg; desc 1 -ns 3 -cn 3 -ta 9; desc 2 -cn 1; data 1 -do -4 000 000 000 /* Fill due to cn 3. */ 011 /* Part of string on page 1. */ 021 033; /* Part of string on page 2. */ data 2 -do -1 000 013; data 3 000 000 000 002; page -all; /* scmr2 * simple test to determine if instruction * is working correctly. data is 9 bit * written in octal format to allow easy * comparison with the mask. this test * accesses all descriptors directly. * */ inst scmr -nt "mc8 simple test 9 bit" -mc8; desc 1 -ns 8 -ta 9; data 1 060061062063064065066067; data 2 047; data 3 000 000 000 000; page -all; /* scmr3 * same data as test 2 but with data 1 * split across page boundary. indirect * mod on desc 1 and 2. * */ inst scmr -io 1 -nt "d1 split 9bit" -mc8 -mf1 idb -mf2 idb; desc 1 -ns 8 -ta 9; data 1 -do -4 060061062063 064065066067; data 2 047; data 3 000 000 000 000; page -all; /* scmr4 * same data config as test 2 but with * full desc mod. * */ inst scmr -io 3 -nt "d1 split 9bit" -mc8 -mf1 idb ar reg rl 8 -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 9; data 1 060061062063064065066067; data 2 047; data 3 000 000 000 000; page -all; /* scmr5 * test of the -cn option for desc 1 and 2 * along with a varied of """mode of desc mod. * both data strings are split across page bound. * */ inst scmr -io 2 -nt "no match 9bit" -ir tr -mc8 -mf1 idb ar reg rl 6 -mf2 ar -mf3 ar; desc 1 -ta 9; desc 2 -cn 3; data 1 -do -2 000000 060061062063064066; data 2 -do -1 000 000 000 047; data 3 000 000 000 006 /* no match */; page -all; /* scmr6 * data 1 wholey contained on page 0 and * data starting on word 0 of page 1; char 0. * all desc mod. * */ inst scmr -io 1 -nt "d1 on p0 9bit" -mc8 -mf1 idb ar reg -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 9 -ns 2 -cn 2; data 1 -do -4 000000060067; data 2 047; data 3 000 000 000 000; page -all; /* scmr7 * a variety of desc mod are used~ and the mask * is set so that there is no match. using the * using the same data as test 6. * */ inst scmr -io 3 -nt "no match 9bit" -mcÿ /* mc = 777 */ -mf1 idr ar rl 2 -mf2 ar reg -mf3 ar; desc 1 -ta 9 -cn 2; data 1 -do -4 000000060067; data 2 047; data 3 000 000 000 000; page -all; /* scmr 8 * the next four tests use the maximum amount of * data for string 1 to test the paging of the data * strings. this test will make sure the inst is operating * correctly using no desc mod. * */ inst scmr -nt "d1 covers 3pp 9bit" -mc /* mc = 001 */ /* mc = 001 */ -mf1 rl 4352 /* no desc mod.--all direct */; desc 1 -ta 9 ; data 1 -do -128 066 (4351) 062; data 2 067; data 3 000 000 010 377; page -all; /* scmr9 * uses same data setup as test 8 but applies * maximum mod to descriptors. * */ inst scmr -io 3 -nt "d1 covers 3pp max desc mod 9b" -mc /* mc = 001 */ -mf1 idb ar reg rl 4352 -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 9; data 1 -do -128 (4351) 062 066; data 2 067; data 3 000 000 000 000; page -all; /* scmr10 * this test specifically tests the -cn option ** for data 2 along with forcing it to cross * a page boundary. all desc mods are taken. * */ inst scmr -io 1 -nt "d1 covers 3pp d2 split 9b" -mc /* mc = 001 */ -mf1 idb ar reg rl 4352 -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 9; desc 2 -cn 1; data 1 -do -128 066 (4351) 062; data 2 -do -2 000067 000000; data 3 000 000 010 377; page -all; /* scmr11 * there will be no match on this test. also, * a variety of desc mods are taken. note * tr indicator will be on. * */ inst scmr -io 1 -nt "no match d1 covers 3pp 9bit" -mc /* mc = 001 */ -ir tr -mf1 idb rl 4352 -mf2 ar reg /* mf3 is direct */; desc 1 -ta 9; desc 2 -cn 1; data 1 -do -128 (4352) 062; data 2 -do -2 000067 000000; data 3 000 000 010 400; page -all; /* scmr12 * this starts the sequence of seven * four bit data tests. this first * test makes sure that the inst is working * correctly without any desc. mod. * */ inst scmr -nt "4bit simple test" -mc /* mc = 001 */ /* all the desc. are direct */; desc 1 -ta 4 -ns 8; data 1 237 323 070 361 /* 1001 1111 1101 0011 0011 1000 1111 00001 */; data 2 360 /* 1111 */; data 3 000 000 000 001; page -all; /* scmr13 * same as previous test but taking all of the * possible desc. mod. * */ inst scmr -io 1 -nt "full desc mod 4bit" -mc /* mc = 001 */ -mf1 idb ar reg rl 8 -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 4; data 1 237 323 070 361; data 2 360; data 3 000 000 000 001; page -all; /* scmr14 * changing the mask characters and offsetting * the first data string across a page boundary * with a variety of desc. mod. * */ inst scmr -io 3 -nt "d1 split 4bit" -mc? -mf1 ar -mf2 idb /* mf3 is direct */; desc 1 -ta 4 -ns 8; data 1 -do -2 237 323 /* page bound */ 070 361; data 2 360; data 3 000 000 000 000; page -all; /* scmr15 * again using the same data but this time splitting * both strings across page bound. and exercising * the -cn option. all desc. mod. are taken. * */ inst scmr -io 1 -nt " d1,d" split 4 bit" -mc? -mf1 idb ar reg -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 4 -ns 6 -cn 1; desc 2 -cn 3; data 1 -do -2 237 323 /* page boun. */ 070 361; data 2 -do -3 000 000 360 /* page bound. */ 000; data 3 000 000 000 000; page -all; /* scmr16 * this time there will be no match with * the same parameters as test 15 with a mask of * 777. the tr indicator will be on. * */ inst scmr -io 2 -nt "match on first try 4 bit" -mcÿ -mf1 idb ar reg -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 4 -ns 8 -cn 1; desc 2 -cn 3; data 1 -do -2 237 323 070 361; data 2 -do -3 000 000 360 000; data 3 000 000 000 000; page -all; /* scmr17 * the next three tests use the maximum amount * of data for string 1. this test uses a mask * of 000 but searches for a char which will not * match ( tr ind). no desc. mod. * */ inst scmr -nt "no mat d1 covers 3pp 4b" -mc /* mc = 000 */ -ir tr -mf1 rl 8704 /* all desc. are direct */; desc 1 -ta 4; data 1 -do -128 (1088) 237323070361; data 2 000; data 3 000 000 021 000; page -all; /* scmr18 * this test will force a match on a middle * char. all desc mods. are taken. * */ inst scmr -io 2 -nt "d1 covers 3 pp 4bit" -mc /* mc = 001 */ -mf1 idb ar reg rl 8704 -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 4; data 1 -do -128 (1087) 237323070361 237 323 070 000; data 2 000; data 3 000 000 000 000; page -all; /* scmr19 * this test puts the second string on page 0 * and tests the -cn option. * */ inst scmr -io 2 -nt "d1 covers 3pp 4 bit" -mc /* mc = 001 */ -mf1 ida ar reg rl 8704 -mf2 idr ar /* mf3 is direct */; desc 1 -ta 4 ; desc 2 -cn 3; data 1 -do -128 237323070000 (1087) 237323070361 ; data 2 -do -3 000 000 000 000; data 3 000 000 000 000; page -all; /* scmr20 * the following tests use 6 bit data. * this test merely makes sure the instruction * is working correctly. direct mod on descriptors. * */ inst scmr -nt "simple test 6 bit" -mc /* all desc. are direct */; desc 1 -ta 6 -ns 12; data 1 414243444546 575051525353; data 2 57; data 3 000 000 000 005; page -all; /* scmr21 * same as previous test but with first string * split across page bound. and a variety * of desc. mods taken. * */ inst scmr -io 1 -nt "d1 split 6bit" -mc /* mc - 020 */ -mf1 ar reg -mf2 idb /* mf3 is direct */; desc 1 -ta 6 -ns 12; data 1 -do -4 414243444546 /*page bound */ 475051525354; data 2 67; data 3 000 000 000 005; page -all; /* scmr22 * this is the same as test 22 except the mask * has been set to preclude a match (tr on) and different desc. mods. are taken. * */ inst scmr -io 2 -nt "no match 6bit" -mc -ir tr -mf1 idb ar -mf2 ar reg -mf3 ar reg; desc 1 -ta 6 -ns 12; data 1 -do -4 414243444546 475051525354; data 2 67; data 3 000 000 000 014; page -all; /* scmr23 *this test exercises all the desc. mods. * and tests the rl and -cn options. it also * changes the mask char . * * */ inst scmr -io 3 -nt "full desc mod 6bit" -mc /* mc = 025 */ -mf1 idb ar reg rl 12 -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 6; desc 2 -cn 3; data 1 -do -6 414243444546475051 525354; data 2 -do -4 000000720000 /* page bound. */; data 3 000 000 000 001; page -all; /* scmr24 * using the -cn option on both descriptors * direct mod on mf3 desc. * */ inst scmr -io 2 -nt "d1 split 6bit" -mc /* mc = 025 */ -mf1 ar rl 5 -mf2 ar /* mf3 is direct */; desc 1 -ta 6 -cn 4; desc 2 -cn 2; data 1 -do -4 000000005100 /*page bound. */ 525354; data 2 -do -2 00007200 /* page bound. */; data 3 000 000 000 001; page -all; /* scmr25 * this test and the next one uses the maximum amount * of char for string 1. this test forces a "no match" * condition (ir tr on) and takes the maximum mod. * on the desc. * */ inst scmr -io 3 -nt "d1 covers 3pp no mat 6bit" -mc000 -ir tr -mf1 idb ar reg rl 6528 -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 6; data 1 -do -128 (1087) 515151515151 515151515153; data 2 52; data 3 000 000 014 600; page -all; /* scmr26 * same as previous test but a match occurs * on the last char. * */ inst scmr -io 2 -nt "d1 covers 3pp 6bit" -mc /* mc = 000 */ -mf1 idb ar reg rl 6528 -mf2 idb ar reg -mf3 ar reg; desc 1 -ta 6; data 1 -do -128 515151515152 (1087) 515151515151 ; data 2 52; data 3 000 000 014 572; page -all; /* mvn1 * * a simple test to see if it works * 9 bit scaled leading sign to 9 bit scaled trailing sign * */ inst mvn -nt "simple" -io 2; desc1 -nn 13 -sd l; desc2 -nn 14 -sd t; data 1 -do 12 "+" (12) "9"; data 2 "0" (12) "9" "+"; page -all; /* mvn2 * truncation fault taken * all page faults taken * integer to floating */ inst mvn -nt "truncation fault" -io 1 -tby -ir tn -mf1 ar rl 63 idb reg -mf2 ar rl 63 idb reg; desc1 -cn 1 -sd l; desc2 -cn 1 -sd f; data 1 -do -63 " " "+98" (15) "7435"; data 2 000 "+" "98" (14) "7435" "743" 001; page -all; /* mvn3 * this is a good test * all page faults taken * legal floating word developed * 9 bit scaled to 9 bit float * */ inst mvn -nt "int -> float" -io 1 -mf1 ar rl 23 idb reg -mf2 ar rl 28 idb reg; desc1 -sf 13 -sd l -cn 3; desc2 -sd f -cn 2; data 1 -do 25 " " "+" (5) "00" (12) "1"; data 2 000000 "+" (4) "000" "00" (12) "1" 015; page -all; /* mvn4 * all page faults taken * float to integer scale factor 12 * 9 bit to 9 bit * */ inst mvn -nt "float to int" -io 1 -ir ng -mf1 ar rl 28 idb reg -mf2 ar rl 23 idb reg; desc1 -sd f -cn 2; desc2 -sf 12 -sd l -cn 3; data 1 -do 27 " -" (14) "0" (12) "1" 015; data 2 000000000 "-" (9) "0" (12) "1" "0"; page -all; /* mvn5 * 9 bit scaled to floating 9 bit * */ inst mvn -nt "scaled to floating" -io 1 -rb -mf1 ar rl 63 idb reg -mf2 ar rl 3 idb reg; desc1 -sd n -sf 31; desc2 -sd f; data 1 -do 62 "1" (62) "0"; data 2 "+" "1" 135; page -all; /* mvn6 * convert float 4 bit to * floating 9 bit * */ inst mvn -nt "float 9 -> float 4" -io 2 -mf1 ar rl 3 idb reg -mf2 ar rl 4 idb; desc1 -sd f; desc2 -sd f -tn 4; data 1 -do -3 "+1" 135; data 2 301135; page -all; /* mvn7 * 9 bit scaled to 4 bit floating * all page faults taken * */ inst mvn -nt "9 scaled to 4 float" -io 3 -ir ng -mf1 ar rl 25 ida reg -mf2 ar rl 23 idb; desc1 -sd t ; desc2 -sd f -cn 3 -tn 4; data 1 -do -1 (20) "0" (4) "3" "-"; data 2 (3) 000 320 (7) 000 003 063 0600; page -all; /* mvn8 * convert 9bit floating point to 4 bit scaled * */ inst mvn -nt "9bit float to 4bit scaled" -io 2 -mf1 ar rl 22 idb reg -mf2 ar rl 33 ida; desc1 -sd f; desc2 -sd t -sf 5 -tn 4; data 1 -do -8 "+" (11) "0" (3) "123" 006; data 2 (11) 000 022 061043022060 300; page -all; /* mvn9 * convert 9 bit floating to 4 bit scaled * */ inst mvn -nt "9bitfloat to 4 bit scaled" -io 1 -mf1 ar rl 20 idb reg -mf2 ar rl 63 ida; desc1 -sd f -cn 2; desc2 -sd l -tn 4 -cn 1; data 1 " +" (9) "0" (4) "45" 060000; data 2 000300 (26) 000 105105105105 (8) 000; page -all; /* mvn10 * 9 bit scaled trailing sign to * 9 bit scaled leading sign */ inst mvn -nt "simple" -io 1; desc1 -nn 14 -sd t; desc2 -nn 13 -sd l; data 1 -do 12 "0" (12) "9" "+"; data 2 "+" (12) "9"; page -all; /* mvn11 * 9 bit float to 9 bit scaled leading sign */ inst mvn -nt "float to int" -io 1 -mf1 ar rl 63 idb reg -mf2 ar rl 63 idb reg; desc1 -cn 1 -sd f; desc2 -cn 1 -sd l; data 1 -do -63 " " "+98" (14) "7435" "743" 001; data 2 000 "+98" (14) "7435" "7430"; page -all; /* mvn12 * 9 bit float to 9 bit scaled negative indicator */ inst mvn -nt "float -> int" -io 2 -mf1 ar rl 28 idb reg -mf2 ar rl 23 idb reg; desc1 -sd f -cn 2; desc2 -sf 13 -sd l -cn 3; data 1 -do 29 " +" (4) "000" "00" (12) "1" 015; data 2 000000000 "+" (5) "00" (12) "1"; page -all; /* mvn13 * 9 bit scaled to 9 bit float * negative indicator on */ inst mvn -nt "int to float" -io 2 -ir ng -mf1 ar rl 23 idb reg -mf2 ar rl 28 idb reg; desc1 -sf 12 -sd l -cn 3; desc2 -sd f -cn 2; data 1 -do 25 " -" (9) "0" (12) "1" "0"; data 2 000000 "-" (13) "0" (12) "1" "0" 014; page -all; /* mvn14 * 9 bit float to 9 bit scaled * */ inst mvn -nt "float to scaled" -io 2 -rb -mf1 ar rl 3 idb reg -mf2 ar rl 63 idb reg; desc1 -sd f; desc2 -sd n -sf 31; data 1 "+1" 135; data 2 "1" (62) "0"; page -all; /* mvn15 * 4 bit float to 9 bit float * */ inst mvn -nt "float 4 -> float 9" -io 1 -mf1 ar rl 4 idb -mf2 ar rl 3 idb reg; desc1 -sd f -tn 4; desc2 -sd f; data 1 -do 3 301135; data 2 "+1" 135; page -all; /* mvn16 * 4 bit floating to 9 bit scaled * truncation and negative indicators on * */ inst mvn -nt "4 float to 9 scaled" -io 1 -ir ng tn -mf1 ar rl 23 idb -mf2 ar rl 25 ida reg; desc1 -sd f -cn 3 -tn 4; desc2 -sd t -sf 2; data 1 -do 1 " " 320 (7) 000 003 063060000; data 2 (22) "0" (2) "3" "-"; page -all; /* mvn17 * 4 bit scaled to 9 bit floating * */ inst mvn -nt "4bit scaled to 9 bit float" -io 3 -mf1 ar rl 33 ida -mf2 ar rl 22 idb reg; desc1 -sd t -sf 5 -tn 4; desc2 -sd f; data 1 (11) 000 022 061043022060 300; data 2 "+" (10) "0" (3) "123" "0" 005; page -all; /* mvn18 * 4 bit scaled to 9 bit floating : */ inst mvn -nt "4bit scaled to 9 bit float" -io 2 -mf1 ar rl 63 ida -mf2 ar rl 20 idb reg; desc1 -sd l -tn 4 -cn 1; desc2 -sd f -cn 2; data 1 " " 300 (26) 000 (4) 105 (8) 000; data 2 000000 "+" (9) "0" (4) "45" "0" 000; page -all; /* mvn19 * 9 bit scaled to 4 bit floating * */ inst mvn -nt "9 bit to 4 bit float" -io 3 -mf1 ar rl 10 ida reg -mf2 ar rl 10 ; desc1 -sd l -cn 1; desc2 -sd f -tn 4; data 1 " +" (5) "0" (4) "1"; data 2 300 000 021 021 000; page -all; /* mvn20 * 9 bit scaled to 4 bit floating * */ inst mvn -nt "9bit to 4 bit float" -mf1 ar rl 10 idb reg -mf2 ar rl 10; desc1 -sd t -cn 2; desc2 -sd f-tn 4; data 1 " " (5) "0" (4) "2" "+"; data 2 300 000 042 042 000; page -all; /* mvn21 * * Move +12.34 into 12.3400+. Length of string 2 will be too short to handle * increased scaling factor so there will be significant digit overflow. */ inst mvn -nt "Sig digit overflow" -io 1 -ir ov -mf1 ar rl 5 -mf2 idr; desc 1 -cn 2 -sd l -sf -2; desc 2 -sd t -sf -3 -nn 5; data 1 -do -5 000 000 /* Fill for cn. */ 053 "12" /* Page 1. */ "34"; /* Page 2. */ data 2 -do -4 "2340" 053; page -all; /* CMPN * * The CMPN instruction algebtaically compares two numbers and sets the * zero, negative, and carry indicators to indicate the results of the * comparison. The five possible settings of the indicators and the inputs * which cause the settings are shown below: * * ZR NG CR INPUTS INPUT * COMBINATION * NUMBER * * 0 0 1 neg,pos,[N1]<[N2] 1 * 0 0 1 pos,pos,[N1]<[N2] 2 * 1 0 1 neg,neg,[N1]=[N2] 3 * 1 0 1 pos,pos,[N1]=[N2] 4 * 0 1 1 neg,neg,[N1]<[N2] 5 * 0 1 1 pos,neg,[N1]<[N2] 6 * 0 1 0 pos,neg,[N1]>[N2] 7 * 0 1 0 pos,pos,[N1]>[N2] 8 * 0 0 0 neg,neg,[N1]>[N2] 9 * 0 0 0 neg,pos,[N1]>[N2] 10 * * * where neg,neg,[N1]<[N2] means that the 1st operand is negative, * the second operand is negative, and the absolute value of the ist * operand is less than the absolute value of the 2nd. * * * Each of the even numbered input combinations is tested with: * * 1). both of the numbers 9-bit decimal and floating point, * 2). both of the numbers 9-bit decimal with leading sign, * 3) both of the numbers 9-bit decimal with trailing sign, * 4). where possible, both of the numbers 9-bit decimal and unsigned. * * * Each of the odd numbered input combinations is tested with: * * 1). both of the numbers 4-bit decimal and floating point, * 2). both of the numbers 4-bit decimal with leading sign, * 3). both of the numbers 4-bit decimal with trailing sign, * 4). where possible, both of the numbers 4-bit decimal and unsigned. * * */ /* cmpn1 * The carry indicator is set. * Two 4-bit trailing sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 4-bit neg with 4-bit pos" -ir cr -mf1 idb ar -mf2 idb ar rl 5 -io 2; desc 1 -tn 4 -sd t -nn 5; desc 2 -tn 4 -sd t; data 1 -do -2 "76" 32; data 2 -do -2 "98" 26; page -all; /* cmpn2 * The carry indicator is set. * Two 4-bit leading sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 4-bit neg with 4-bit pos" -ir cr -mf1 idb ar rl 13 -mf2 idb ar -io 1; desc 1 -tn 4 -sd l -sf -1; desc 2 -tn 4 -sd l -sf -2 -nn 16; data 1 -do -2 325 "98642" 00; data 2 -do -3 262 "3278411"; page -all; /* cmpn3 * The carry indicator is set. * Two 4-bit floating point operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 4-bit neg with 4-bit pos" -ir cr -mf1 idb ar -mf2 idb ar -io 2; desc 1 -tn 4 -sd f -nn 12; desc 2 -tn 4 -sd f -nn 12; data 1 -do -2 323 "98762"; data 2 -do -1 264 "32943"; page -all; /* cmpn4 * The carry indicator is set. * Two 9-bit unsigned operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 9-bit pos with 9-bit pos" -ir cr -mf1 idb ar reg -mf2 idb ar reg -io 1; desc 1 -sd n -sf 4 -nn 63; desc 2 -sd n -sf 5 -nn 63; data 1 -do -1 (15)"9834" "395"; data 2 -do -62 (15)"8765" "147"; page -all; /* cmpn5 * The carry indicator is set. * Two 9-bit trailing sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 9-bit pos with 9-bit pos" -ir cr -mf1 idb ar reg -mf2 idb ar reg -io 3; desc 1 -sd t -sf -2 -nn 14; desc 2 -sd t -sf 12 -nn 14; data 1 -do -13 (4)"298" "3" 053; data 2 -do -13 (4)"687" "2" 053; page -all; /* cmpn6 * The carry indicator is set. * Two 9-bit leading sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 9-bit pos with 9-bit pos" -ir cr -mf1 idb ar reg -mf2 idb ar reg -io 2; desc 1 -sd l -sf 2 -nn 12; desc 2 -sd l -sf 3 -nn 12; data 1 -do -4 053 (11)"3"; data 2 -do -4 053 (11)"2"; page -all; /* cmpn7 * The carry indicator is set. * Two 9-bit floating point operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 9-bit pos with 9-bit pos" -ir cr -mf1 idb ar reg rl 9 -mf2 idb ar reg -io 1; desc 1 -sd f; desc 2 -sd f -nn 8; data 1 -do -8 053 "7654321" 377; data 2 -do -1 053 "987654" 002; page -all; /* cmpn8 * The zero indicator is set. * The carry indicator is set. * Two 4-bit trailing sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 4-bit neg with 4-bit neg" -ir zr cr -mf1 idb ar -mf2 idb ar rl 4 -io 2; desc 1 -tn 4 -sd t -nn 4; desc 2 -tn 4 -sd t; data 1 -do -1 "7" 035; data 2 -do -1 "7" 035; page -all; /* cmpn9 * The zero indicator is set. * The carry indicator is set. * Two 4-bit leading sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 4-bit neg with 4-bit neg" -ir zr cr -mf1 idb ar rl 63 -mf2 idb ar rl 63 -io 1; desc 1 -tn 4 -sd l -sf 3; desc 2 -tn 4 -sd l -sf 3; data 1 -do -31 32 (31)"5"; data 2 -do -1 32 (31)"5"; page -all; /* cmpn10 * The zero indicator is set. * The carry indicator is set. * Two 4-bit floating point operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 4-bit neg with 4-bit neg" -ir zr cr -mf1 idb ar -mf2 idb ar -io 2; desc 1 -tn 4 -sd f -nn 8; desc 2 -tn 4 -sd f -nn 8; data 1 -do -1 325 "495"; data 2 -do -2 325 "495"; page -all; /* cmpn11 * The zero indicator is set. * The carry indicator is set. * Two 9-bit unsigned operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 9-bit pos with 9-bit pos" -ir zr cr -mf1 idb ar reg rl 3 -mf2 idb ar reg -io 1; desc 1 -sd n -sf 1; desc 2 -sd n -sf 1 -nn 3; data 1 -do -2 "432"; data 2 -do -1 "432"; page -all; /* cmpn12 * The zero indicator is set. * The carry indicator is set. * Two 9-bit trailing sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 9-bit pos with 9-bit pos" -ir zr cr -mf1 idb ar reg rl 63 -mf2 idb ar reg rl 63 -io 2; desc 1 -sd t; desc 2 -sd t; data 1 -do -62 (12)"98765" "28" 053; data 2 -do -61 (12)"98765" "28" 053; page -all; /* cmpn13 * The zero indicator is set. * The carry indicator is set. * Two 9-bit leading sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 9-bit pos with 9-bit pos" -ir zr cr -mf1 idb ar reg -mf2 idb ar reg -io 2; desc 1 -sd l -sf -8 -nn 18; desc 2 -sd l -sf -8 -nn 18; data 1 -do -16 053 (5)"369" "00"; data 2 -do -15 053 (5)"369" "00"; page -all; /* cmpn14 * The zero indicator is set. * The carry indicator is set. * Two 9-bit floating point operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 9-bit pos with 9-bit pos" -ir zr cr -mf1 idb ar reg -mf2 idb ar reg -io 1; desc 1 -sd f -nn 39; desc 2 -sd f -nn 39; data 1 -do -30 053 (6)"125897" "4" 017; data 2 -do -24 053 (6)"125897" "4" 017; page -all; /* cmpn15 * The negative indicator is set. * The carry indicator is set. * Two 4-bit trailing sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 4-bit neg with 4-bit neg" -ir ng cr -mf1 idb ar -mf2 idb ar -io 3; desc 1 -tn 4 -sd t -sf -1 -nn 13; desc 2 -tn 4 -sd t -sf 1 -nn 63; data 1 -do -1 "123456" 32; data 2 -do -30 (15)"12" "9" 32; page -all; /* cmpn16 * The negative indicator is set. * The carry indicator is set. * Two 4-bit leading sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 4-bit neg with 4-bit neg" -ir ng cr -mf1 idb ar -mf2 idb ar -io 2; desc 1 -tn 4 -sd l -sf 1 -nn 6; desc 2 -tn 4 -sd l -sf 2 -nn 6; data 1 -do -2 321 "44"; data 2 -do -2 321 "44"; page -all; /* cmpn17 * The negative indicator is set. * The carry indicator is set. * Two 4-bit floating point operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 4-bit neg with 4-bit neg" -ir ng cr -mf1 idb ar -mf2 idb ar -io 2; desc 1 -tn 4 -sd f -nn 5; desc 2 -tn 4 -sd f -nn 5; data 1 -do -1 324 "5" 00; data 2 -do -1 327 "6" 00; page -all; /* cmpn18 * The negative indicator is set. * The carry indicator is set. * Two 9-bit trailing sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 9-bit pos with 9-bit neg" -ir ng cr -mf1 idb ar reg -mf2 idb ar reg -io 1; desc 1 -sd t -nn 8; desc 2 -sd t -nn 9; data 1 -do -4 "4567821" 053; data 2 -do -8 "92814372" 055; page -all; /* cmpn19 * The negative indicator is set. * The carry indicator is set. * Two 9-bit leading sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 9-bit pos with 9-bit neg" -ir ng cr -mf1 idb ar reg -mf2 idb ar reg -io 2; desc 1 -sd l -sf -5 -nn 63; desc 2 -sd l -sf -4 -nn 63; data 1 -do -60 053 "92" (15)"6391"; data 2 -do -4 055 "82" (15)"7482"; page -all; /* cmpn20 * The negative indicator is set. * The carry indicator is set. * Two 9-bit floating point operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 9-bit pos with 9-bit neg" -ir ng cr -mf1 idb ar reg -mf2 idb ar reg -io3; desc 1 -sd f -nn 11; desc 2 -sd f -nn 11; data 1 -do -10 053 "345678901" 001; data 2 -do -1 055 "456789012" 002; page -all; /* cmpn21 * The negative indicator is set. * Two 4-bit trailing sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 4-bit pos with 4-bit neg" -ir ng -mf1 idb ar -mf2 idb ar -io 1; desc 1 -tn 4 -sd t -nn 3; desc 2 -tn 4 -sd t -nn 3; data 1 -do -1 "4" 26; data 2 -do -1 "3" 32; page -all; /* cmpn22 * The negative indicator is set. * Two 4-bit leading sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 9-bit pos with 9-bit neg" -ir ng -mf1 idb ar -mf2 idb ar -io 1; desc 1 -tn 4 -sd l -nn 5; desc 2 -tn 4 -sd l -nn 4; data 1 -do -2 267 000 00; data 2 -do -1 324 000; page -all; /* cmpn23 * The negative indicator is set. * Two 4-bit floating point operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 9-bit pos with 9-bit neg" -ir ng -mf1 idb ar -mf2 idb ar -io 1; desc 1 -tn 4 -sd f -nn 63; desc 2 -tn 4 -sd f -nn 63; data 1 -do -4 270 (14)"10" 00000000; data 2 -do -4 321 (14)"10" 00000000; page -all; /* cmpn24 * The negative indicator is set. * Two 9-bit unsigned operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 9-bit pos with 9-bit pos" -ir ng -mf1 idb ar reg -mf2 idb ar reg -io 3; desc 1 -sd n -sf 4 -nn 5; desc 2 -sd n -sf 1 -nn 4; data 1 -do -1 "12345"; data 2 -do -3 "2345"; page -all; /* cmpn25 * The negative indicator is set. * Two 9-bit trailing sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 9-bit pos with 9-bit pos" -ir ng -mf1 idb ar reg -mf2 idb ar reg -io 1; desc 1 -sd t -sf 4 -nn 37; desc 2 -sd t -sf 3 -nn 37; data 1 -do -36 (12)"965" 053; data 2 -do -1 (12)"965" 053; page -all; /* cmpn26 * The negative indicator is set. * Two 9-bit leading sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 9-bit pos with 9-bit pos" -ir ng -mf1 idb ar reg -mf2 idb ar reg -io 1; desc 1 -sd l -sf 2 -nn 63; desc 2 -sd l -sf 2 -nn 63; data 1 -do -3 053 "95" (15)"2398"; data 2 -do -4 053 "68" (15)"4782"; page -all; /* cmpn27 * The negative indicator is set. * Two 9-bit floating point operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 9-bit pos with 9-bit pos" -ir ng -mf1 idb ar reg -mf2 idb ar reg -io 2; desc 1 -sd f -nn 63; desc 2 -sd f -nn 63; data 1 -do -4 053 "4" (15)"8901" 002; data 2 -do -3 053 "4" (15)"8901" 001; page -all; /* cmpn28 * Two 4-bit trailing sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 4-bit neg with 4-bit neg" -mf1 idb ar -mf2 idb ar -io 1; desc 1 -tn 4 -sd t -nn 39; desc 2 -tn 4 -sd t -nn 39; data 1 -do -19 (19)"5" 32; data 2 -do -19 (19)"4" 32; page -all; /* cmpn29 * Two 4-bit leading sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 4-bit neg with 4-bit neg" -mf1 idb ar rl 7 -mf2 idb ar -io 2; desc 1 -tn 4 -sd l -sf 5 ; desc 2 -tn 4 -sd l -sf 1 -nn 7; data 1 -do -3 324 "98" 00; data 2 -do -1 323 "64" 00; page -all; /* cmpn30 * Two 4-bit floating point operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 4-bit neg with 4-bit neg" -mf1 idb ar -mf2 idb ar rl 60 -io 2; desc 1 -tn 4 -sd f -nn 63; desc 2 -tn 4 -sd f; data 1 -do -1 321 (15)"892" 00; data 2 -do -29 322 (14)"98" 000; page -all; /* cmpn31 * Two 9-bit trailing sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 9-bit neg with 9-bit pos" -mf1 idb ar reg rl 63 -mf2 idb ar reg -io 2; desc 1 -sd t -sf 12; desc 2 -sd t -sf -1 -nn 5; data 1 -do -62 (31)"98" 055; data 2 -do -4 "5432" 053; page -all; /* cmpn32 * Two 9-bit leading sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 9-bit neg with 9-bit pos" -mf1 idb ar reg -mf2 idb ar reg -io 2; desc 1 -sd l -sf -4 -nn 6; desc 2 -sd l -sf -6 -nn 6; data 1 -do -4 055 "42816"; data 2 -do -5 053 "98321"; page -all; /* cmpn33 * Two 9-bit floating point operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst cmpn -nt "Compare 9-bit neg with 9-bit pos" -mf1 idb ar reg rl 63 -mf2 idb ar reg rl 63 -io 1; desc 1 -sd f ; desc 2 -sd f ; data 1 -do -8 055 (15)"9999" "8" 004; data 2 -do -9 053 (15)"8777" "4" 002; page -all; /* mvne1 * these tests exercise the mvne instruction * using the 4 to 9 bit option and the 9 to 9 * bit options on the data. the same template * for the mop sequence will be used for all * tests with various desc and data mod. * */ inst mvne -nt "simple test no mod 9-9" -mf2 rl 29; desc 1 -nn 24 -sd n; desc 3 -nn 33 ; data 1 /* the 9 bit data arranged in sequence of use */ /* the strings are 0012 0012 3456 3456 0012 3456 */ "001200123456345600123456"; data 2 /* ***mop sequence arranged in order *** */ 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 064 /* ses es reset bz set */ 144 /* mfls */ 064 /* ses */ 040 /* enf for "+" insert. */ 200 "=" /* insb */ 220 "q" /* insa insert "q" */ 260 "q" /* insp */ 304 /* ign */ 344 /* mvc */ 420 "12345678" /* change table with string shown */ 024 /* insm */ 401 "2" /* load table entry 1 with "2" */ 024 /* insm */ 364 /* mors */ /* end of mop string */; data 3 /* arranged in order */ " 12" "**12" "+3456" "+" "=" "q" "q" "0012" "1111" "2222" "3777"; page -all; /* mvne2 * these tests exercise the mvne instruction * using the 4 to 9 bit option and the 9 to 9 * bit options on the data. the same template * for the mop sequence will be used for all * tests with various desc and data mod. * */ inst mvne -nt "offset inst and desc mod 9-9" -io 3 -mf1 idr reg -mf2 reg rl 29 -mf3 idb; desc 1 -nn 24 -sd n; desc 3 -nn 33 ; data 1 /* the 9 bit data arranged in sequence of use */ /* the strings are 0012 0012 3456 3456 0012 3456 */ "001200123456345600123456"; data 2 /* ***mop sequence arranged in order *** */ 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 064 /* ses es reset bz set */ 144 /* mfls */ 064 /* ses */ 040 /* enf for "+" insert. */ 200 "=" /* insb */ 220 "q" /* insa insert "q" */ 260 "q" /* insp */ 304 /* ign */ 344 /* mvc */ 420 "12345678" /* change table with string shown */ 024 /* insm */ 401 "2" /* load table entry 1 with "2" */ 024 /* insm */ 364 /* mors */ /* end of mop string */; data 3 /* arranged in order */ " 12" "**12" "+3456" "+" "=" "q" "q" "0012" "1111" "2222" "3777"; page -all; /* mvne3 * these tests exercise the mvne instruction * using the 4 to 9 bit option and the 9 to 9 * bit options on the data. the same template * for the mop sequence will be used for all * tests with various desc and data mod. * */ inst mvne -nt "offset inst and d1 offset 9-9" -io 3 -mf1 idr reg -mf2 reg rl 29 -mf3 idb; desc 1 -nn 24 -sd n; desc 3 -nn 33 ; data 1 /* the 9 bit data arranged in sequence of use */ -do -16 /* the strings are 0012 0012 3456 3456 0012 3456 */ "001200123456345600123456"; data 2 /* ***mop sequence arranged in order *** */ 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 064 /* ses es reset bz set */ 144 /* mfls */ 064 /* ses */ 040 /* enf for "+" insert. */ 200 "=" /* insb */ 220 "q" /* insa insert "q" */ 260 "q" /* insp */ 304 /* ign */ 344 /* mvc */ 420 "12345678" /* change table with string shown */ 024 /* insm */ 401 "2" /* load table entry 1 with "2" */ 024 /* insm */ 364 /* mors */ /* end of mop string */; data 3 /* arranged in order */ " 12" "**12" "+3456" "+" "=" "q" "q" "0012" "1111" "2222" "3777"; page -all; /* mvne4 * these tests exercise the mvne instruction * using the 4 to 9 bit option and the 9 to 9 * bit options on the data. the same template * for the mop sequence will be used for all * tests with various desc and data mod. * */ inst mvne -nt "offset d2 and d1 offset 9-9" -io 3 -mf1 idr reg -mf2 reg rl 29 -mf3 idb; desc 1 -nn 24 -sd n; desc 3 -nn 33 ; data 1 /* the 9 bit data arranged in sequence of use */ -do -16 /* the strings are 0012 0012 3456 3456 0012 3456 */ "001200123456345600123456"; data 2 /* ***mop sequence arranged in order *** */ -do -20 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 064 /* ses es reset bz set */ 144 /* mfls */ 064 /* ses */ 040 /* enf for "+" insert. */ 200 "=" /* insb */ 220 "q" /* insa insert "q" */ 260 "q" /* insp */ 304 /* ign */ 344 /* mvc */ 420 "12345678" /* change table with string shown */ 024 /* insm */ 401 "2" /* load table entry 1 with "2" */ 024 /* insm */ 364 /* mors */ /* end of mop string */; data 3 /* arranged in order */ " 12" "**12" "+3456" "+" "=" "q" "q" "0012" "1111" "2222" "3777"; page -all; /* mvne5 * these tests exercise the mvne instruction * using the 4 to 9 bit option and the 9 to 9 * bit options on the data. the same template * for the mop sequence will be used for all * tests with various desc and data mod. * */ inst mvne -nt "offset d2 and d1 and d3 9-9" -io 3 -mf1 idr reg -mf2 reg rl 29 -mf3 idb; desc 1 -nn 24 -sd n; desc 3 -nn 33 ; data 1 /* the 9 bit data arranged in sequence of use */ -do -16 /* the strings are 0012 0012 3456 3456 0012 3456 */ "001200123456345600123456"; data 2 /* ***mop sequence arranged in order *** */ -do -20 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 064 /* ses es reset bz set */ 144 /* mfls */ 064 /* ses */ 040 /* enf for "+" insert. */ 200 "=" /* insb */ 220 "q" /* insa insert "q" */ 260 "q" /* insp */ 304 /* ign */ 344 /* mvc */ 420 "12345678" /* change table with string shown */ 024 /* insm */ 401 "2" /* load table entry 1 with "2" */ 024 /* insm */ 364 /* mors */ /* end of mop string */; data 3 /* arranged in order */ -do -8 " 12" "**12" "+3456" "+" "=" "q" "q" "0012" "1111" "2222" "3777"; page -all; /* mvne6 * these tests exercise the mvne instruction * using the 4 to 9 bit option and the 9 to 9 * bit options on the data. the same template * for the mop sequence will be used for all * tests with various desc and data mod. * */ inst mvne -nt "offset d2 and d1 and d3 9-9" -io 3 -mf1 idr reg -mf2 reg rl 29 -mf3 idb; desc 1 -cn 3 -nn 24 -sd n; desc 3 -nn 33 ; data 1 /* the 9 bit data arranged in sequence of use */ -do -16 /* the strings are 0012 0012 3456 3456 0012 3456 */ "***" /* for cn */ "001200123456345600123456"; data 2 /* ***mop sequence arranged in order *** */ -do -20 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 064 /* ses es reset bz set */ 144 /* mfls */ 064 /* ses */ 040 /* enf for "+" insert. */ 200 "=" /* insb */ 220 "q" /* insa insert "q" */ 260 "q" /* insp */ 304 /* ign */ 344 /* mvc */ 420 "12345678" /* change table with string shown */ 024 /* insm */ 401 "2" /* load table entry 1 with "2" */ 024 /* insm */ 364 /* mors */ /* end of mop string */; data 3 /* arranged in order */ -do -8 " 12" "**12" "+3456" "+" "=" "q" "q" "0012" "1111" "2222" "3777"; page -all; /* mvne7 * these tests exercise the mvne instruction * using the 4 to 9 bit option and the 9 to 9 * bit options on the data. the same template * for the mop sequence will be used for all * tests with various desc and data mod. * */ inst mvne -nt "d1 totally on p0 9-9" -io 2 -mf1 idr ar -mf2 reg rl 29 -mf3 ida ar reg; desc 1 -cn 3 -nn 24 -sd n; desc 3 -nn 33 ; data 1 /* the 9 bit data arranged in sequence of use */ -do -24 /* the strings are 0012 0012 3456 3456 0012 3456 */ "***" /* for cn */ "001200123456345600123456"; data 2 /* ***mop sequence arranged in order *** */ -do -20 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 064 /* ses es reset bz set */ 144 /* mfls */ 064 /* ses */ 040 /* enf for "+" insert. */ 200 "=" /* insb */ 220 "q" /* insa insert "q" */ 260 "q" /* insp */ 304 /* ign */ 344 /* mvc */ 420 "12345678" /* change table with string shown */ 024 /* insm */ 401 "2" /* load table entry 1 with "2" */ 024 /* insm */ 364 /* mors */ /* end of mop string */; data 3 /* arranged in order */ -do -8 " 12" "**12" "+3456" "+" "=" "q" "q" "0012" "1111" "2222" "3777"; page -all; /* mvne8 * these tests exercise the mvne instruction * using the 4 to 9 bit option and the 9 to 9 * bit options on the data. the same template * for the mop sequence will be used for all * tests with various desc and data mod. * */ inst mvne -nt "d2 totally on p0 9-9" -io 2 -mf1 idr ar -mf2 ar reg rl 29 -mf3 ida ar reg; desc 1 -cn 3 -nn 24 -sd n; desc 3 -nn 33 ; data 1 /* the 9 bit data arranged in sequence of use */ -do -20 /* the strings are 0012 0012 3456 3456 0012 3456 */ "***" /* for cn */ "001200123456345600123456"; data 2 /* ***mop sequence arranged in order *** */ -do -30 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 064 /* ses es reset bz set */ 144 /* mfls */ 064 /* ses */ 040 /* enf for "+" insert. */ 200 "=" /* insb */ 220 "q" /* insa insert "q" */ 260 "q" /* insp */ 304 /* ign */ 344 /* mvc */ 420 "12345678" /* change table with string shown */ 024 /* insm */ 401 "2" /* load table entry 1 with "2" */ 024 /* insm */ 364 /* mors */ /* end of mop string */; data 3 /* arranged in order */ -do -8 " 12" "**12" "+3456" "+" "=" "q" "q" "0012" "1111" "2222" "3777"; page -all; /* mvne9 * these tests exercise the mvne instruction * using the 4 to 9 bit option and the 9 to 9 * bit options on the data. the same template * for the mop sequence will be used for all * tests with various desc and data mod. * */ inst mvne -nt "d3 totally on p0 9-9" -io 2 -mf1 idr ar -mf2 reg ar rl 29 -mf3 ida ar reg; desc 1 -cn 3 -nn 24 -sd n; desc 3 -nn 33 ; data 1 /* the 9 bit data arranged in sequence of use */ -do -20 /* the strings are 0012 0012 3456 3456 0012 3456 */ "***" /* for cn */ "001200123456345600123456"; data 2 /* ***mop sequence arranged in order *** */ -do -10 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 064 /* ses es reset bz set */ 144 /* mfls */ 064 /* ses */ 040 /* enf for "+" insert. */ 200 "=" /* insb */ 220 "q" /* insa insert "q" */ 260 "q" /* insp */ 304 /* ign */ 344 /* mvc */ 420 "12345678" /* change table with string shown */ 024 /* insm */ 401 "2" /* load table entry 1 with "2" */ 024 /* insm */ 364 /* mors */ /* end of mop string */; data 3 /* arranged in order */ -do -34 " 12" "**12" "+3456" "+" "=" "q" "q" "0012" "1111" "2222" "3777"; page -all; /* mvne10 * these tests exercise the mvne instruction * using the 4 to 9 bit option and the 9 to 9 * bit options on the data. the same template * for the mop sequence will be used for all * tests with various desc and data mod. * */ inst mvne -nt "all data totally on p0 9-9" -io 2 -mf1 idr ar -mf2 reg ar rl 29 -mf3 ida ar reg; desc 1 -cn 3 -nn 24 -sd n; desc 3 -nn 33 ; data 1 /* the 9 bit data arranged in sequence of use */ -do -30 /* the strings are 0012 0012 3456 3456 0012 3456 */ "***" /* for cn */ "001200123456345600123456"; data 2 /* ***mop sequence arranged in order *** */ -do -30 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 064 /* ses es reset bz set */ 144 /* mfls */ 064 /* ses */ 040 /* enf for "+" insert. */ 200 "=" /* insb */ 220 "q" /* insa insert "q" */ 260 "q" /* insp */ 304 /* ign */ 344 /* mvc */ 420 "12345678" /* change table with string shown */ 024 /* insm */ 401 "2" /* load table entry 1 with "2" */ 024 /* insm */ 364 /* mors */ /* end of mop string */; data 3 /* arranged in order */ -do -34 " 12" "**12" "+3456" "+" "=" "q" "q" "0012" "1111" "2222" "3777"; page -all; /* mvne11 * these tests exercise the mvne instruction * using the 4 to 9 bit option and the 9 to 9 * bit options on the data. the same template * for the mop sequence will be used for all * tests with various desc and data mod. * */ inst mvne -nt "simple test no mod 4-9" -mf2 rl 29; desc 1 -tn 4 -nn 24 -sd n; desc 3 -nn 33 ; data 1 /* the 9 bit data arranged in sequence of use */ /* the strings are 0012 0012 3456 3456 0012 3456 */ 000022000022064126064126000022064126; data 2 /* ***mop sequence arranged in order *** */ 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 064 /* ses es reset bz set */ 144 /* mfls */ 064 /* ses */ 040 /* enf for "+" insert. */ 200 "=" /* insb */ 220 "q" /* insa insert "q" */ 260 "q" /* insp */ 304 /* ign */ 344 /* mvc */ 420 "12345678" /* change table with string shown */ 024 /* insm */ 401 "2" /* load table entry 1 with "2" */ 024 /* insm */ 364 /* mors */ /* end of mop string */; data 3 /* arranged in order */ " 12" "**12" "+3456" "+" "=" "q" "q" "0012" "1111" "2222" "3777"; page -all; /* mvne12 * these tests exercise the mvne instruction * using the 4 to 9 bit option and the 9 to 9 * bit options on the data. the same template * for the mop sequence will be used for all * tests with various desc and data mod. * */ inst mvne -nt "offset inst and desc mod 4-9" -io 2 -mf2 reg rl 29 -mf3 ida; desc 1 -tn 4 -nn 24 -sd n; desc 3 -nn 33 ; data 1 /* the 9 bit data arranged in sequence of use */ /* the strings are 0012 0012 3456 3456 0012 3456 */ 000022000022064126064126000022064126; data 2 /* ***mop sequence arranged in order *** */ 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 064 /* ses es reset bz set */ 144 /* mfls */ 064 /* ses */ 040 /* enf for "+" insert. */ 200 "=" /* insb */ 220 "q" /* insa insert "q" */ 260 "q" /* insp */ 304 /* ign */ 344 /* mvc */ 420 "12345678" /* change table with string shown */ 024 /* insm */ 401 "2" /* load table entry 1 with "2" */ 024 /* insm */ 364 /* mors */ /* end of mop string */; data 3 /* arranged in order */ " 12" "**12" "+3456" "+" "=" "q" "q" "0012" "1111" "2222" "3777"; page -all; /* mvne13 * these tests exercise the mvne instruction * using the 4 to 9 bit option and the 9 to 9 * bit options on the data. the same template * for the mop sequence will be used for all * tests with various desc and data mod. * */ inst mvne -nt "offset inst and d1 offset 4-9" -io 3 -mf2 reg rl 29 -mf3 ida; desc 1 -tn 4 -nn 24 -sd n; desc 3 -nn 33 ; data 1 /* the 9 bit data arranged in sequence of use */ -do -16 /* the strings are 0012 0012 3456 3456 0012 3456 */ 000022000022064126064126000022064126; data 2 /* ***mop sequence arranged in order *** */ 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 064 /* ses es reset bz set */ 144 /* mfls */ 064 /* ses */ 040 /* enf for "+" insert. */ 200 "=" /* insb */ 220 "q" /* insa insert "q" */ 260 "q" /* insp */ 304 /* ign */ 344 /* mvc */ 420 "12345678" /* change table with string shown */ 024 /* insm */ 401 "2" /* load table entry 1 with "2" */ 024 /* insm */ 364 /* mors */ /* end of mop string */; data 3 /* arranged in order */ " 12" "**12" "+3456" "+" "=" "q" "q" "0012" "1111" "2222" "3777"; page -all; /* mvne14 * these tests exercise the mvne instruction * using the 4 to 9 bit option and the 9 to 9 * bit options on the data. the same template * for the mop sequence will be used for all * tests with various desc and data mod. * */ inst mvne -nt "offset d2 and d1 offset 4-9" -io 3 -mf2 reg rl 29 -mf3 ida; desc 1 -tn 4 -nn 24 -sd n; desc 3 -nn 33 ; data 1 /* the 9 bit data arranged in sequence of use */ -do -16 /* the strings are 0012 0012 3456 3456 0012 3456 */ 000022000022064126064126000022064126; data 2 /* ***mop sequence arranged in order *** */ -do -20 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 064 /* ses es reset bz set */ 144 /* mfls */ 064 /* ses */ 040 /* enf for "+" insert. */ 200 "=" /* insb */ 220 "q" /* insa insert "q" */ 260 "q" /* insp */ 304 /* ign */ 344 /* mvc */ 420 "12345678" /* change table with string shown */ 024 /* insm */ 401 "2" /* load table entry 1 with "2" */ 024 /* insm */ 364 /* mors */ /* end of mop string */; data 3 /* arranged in order */ " 12" "**12" "+3456" "+" "=" "q" "q" "0012" "1111" "2222" "3777"; page -all; /* mvne15 * these tests exercise the mvne instruction * using the 4 to 9 bit option and the 9 to 9 * bit options on the data. the same template * for the mop sequence will be used for all * tests with various desc and data mod. * */ inst mvne -nt "offset d2 and d1 and d3 4-9" -io 3 -mf2 reg rl 29 -mf3 ida; desc 1 -tn 4 -nn 24 -sd n; desc 3 -nn 33 ; data 1 /* the 9 bit data arranged in sequence of use */ -do -16 /* the strings are 0012 0012 3456 3456 0012 3456 */ 000022000022064126064126000022064126; data 2 /* ***mop sequence arranged in order *** */ -do -20 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 064 /* ses es reset bz set */ 144 /* mfls */ 064 /* ses */ 040 /* enf for "+" insert. */ 200 "=" /* insb */ 220 "q" /* insa insert "q" */ 260 "q" /* insp */ 304 /* ign */ 344 /* mvc */ 420 "12345678" /* change table with string shown */ 024 /* insm */ 401 "2" /* load table entry 1 with "2" */ 024 /* insm */ 364 /* mors */ /* end of mop string */; data 3 /* arranged in order */ -do -8 " 12" "**12" "+3456" "+" "=" "q" "q" "0012" "1111" "2222" "3777"; page -all; /* mvne16 * these tests exercise the mvne instruction * using the 4 to 9 bit option and the 9 to 9 * bit options on the data. the same template * for the mop sequence will be used for all * tests with various desc and data mod. * */ inst mvne -nt "offset d2 and d1 and d3 4-9" -io 3 -mf2 reg rl 29 -mf3 ida; desc 1 -tn 4 -nn 24 -sd n; desc 3 -nn 33 ; data 1 /* the 9 bit data arranged in sequence of use */ -do -16 /* the strings are 0012 0012 3456 3456 0012 3456 */ 000022000022064126064126000022064126; data 2 /* ***mop sequence arranged in order *** */ -do -20 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 064 /* ses es reset bz set */ 144 /* mfls */ 064 /* ses */ 040 /* enf for "+" insert. */ 200 "=" /* insb */ 220 "q" /* insa insert "q" */ 260 "q" /* insp */ 304 /* ign */ 344 /* mvc */ 420 "12345678" /* change table with string shown */ 024 /* insm */ 401 "2" /* load table entry 1 with "2" */ 024 /* insm */ 364 /* mors */ /* end of mop string */; data 3 /* arranged in order */ -do -8 " 12" "**12" "+3456" "+" "=" "q" "q" "0012" "1111" "2222" "3777"; page -all; /* mvne17 * these tests exercise the mvne instruction * using the 4 to 9 bit option and the 9 to 9 * bit options on the data. the same template * for the mop sequence will be used for all * tests with various desc and data mod. * */ inst mvne -nt "d1 totally on p0 4-9" -io 2 -mf1 idr ar -mf2 reg rl 29 -mf3 ida ar reg; desc 1 -tn 4 -nn 24 -sd n; desc 3 -nn 33 ; data 1 /* the 9 bit data arranged in sequence of use */ -do -24 /* the strings are 0012 0012 3456 3456 0012 3456 */ 000022000022064126064126000022064126; data 2 /* ***mop sequence arranged in order *** */ -do -20 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 064 /* ses es reset bz set */ 144 /* mfls */ 064 /* ses */ 040 /* enf for "+" insert. */ 200 "=" /* insb */ 220 "q" /* insa insert "q" */ 260 "q" /* insp */ 304 /* ign */ 344 /* mvc */ 420 "12345678" /* change table with string shown */ 024 /* insm */ 401 "2" /* load table entry 1 with "2" */ 024 /* insm */ 364 /* mors */ /* end of mop string */; data 3 /* arranged in order */ -do -8 " 12" "**12" "+3456" "+" "=" "q" "q" "0012" "1111" "2222" "3777"; page -all; /* mvne18 * these tests exercise the mvne instruction * using the 4 to 9 bit option and the 9 to 9 * bit options on the data. the same template * for the mop sequence will be used for all * tests with various desc and data mod. * */ inst mvne -nt "d2 totally on p0 4-9" -io 2 -mf1 idr ar -mf2 ar reg rl 29 -mf3 ida ar reg; desc 1 -tn 4 -nn 24 -sd n; desc 3 -nn 33 ; data 1 /* the 9 bit data arranged in sequence of use */ -do -20 /* the strings are 0012 0012 3456 3456 0012 3456 */ 000022000022064126064126000022064126; data 2 /* ***mop sequence arranged in order *** */ -do -30 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 064 /* ses es reset bz set */ 144 /* mfls */ 064 /* ses */ 040 /* enf for "+" insert. */ 200 "=" /* insb */ 220 "q" /* insa insert "q" */ 260 "q" /* insp */ 304 /* ign */ 344 /* mvc */ 420 "12345678" /* change table with string shown */ 024 /* insm */ 401 "2" /* load table entry 1 with "2" */ 024 /* insm */ 364 /* mors */ /* end of mop string */; data 3 /* arranged in order */ -do -8 " 12" "**12" "+3456" "+" "=" "q" "q" "0012" "1111" "2222" "3777"; page -all; /* mvne19 * these tests exercise the mvne instruction * using the 4 to 9 bit option and the 9 to 9 * bit options on the data. the same template * for the mop sequence will be used for all * tests with various desc and data mod. * */ inst mvne -nt "d3 totally on p0 4-9" -io 2 -mf1 idr ar -mf2 reg ar rl 29 -mf3 ida ar reg; desc 1 -tn 4 -nn 24 -sd n; desc 3 -nn 33 ; data 1 /* the 9 bit data arranged in sequence of use */ -do -20 /* the strings are 0012 0012 3456 3456 0012 3456 */ 000022000022064126064126000022064126; data 2 /* ***mop sequence arranged in order *** */ -do -10 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 064 /* ses es reset bz set */ 144 /* mfls */ 064 /* ses */ 040 /* enf for "+" insert. */ 200 "=" /* insb */ 220 "q" /* insa insert "q" */ 260 "q" /* insp */ 304 /* ign */ 344 /* mvc */ 420 "12345678" /* change table with string shown */ 024 /* insm */ 401 "2" /* load table entry 1 with "2" */ 024 /* insm */ 364 /* mors */ /* end of mop string */; data 3 /* arranged in order */ -do -34 " 12" "**12" "+3456" "+" "=" "q" "q" "0012" "1111" "2222" "3777"; page -all; /* mvne20 * these tests exercise the mvne instruction * using the 4 to 9 bit option and the 9 to 9 * bit options on the data. the same template * for the mop sequence will be used for all * tests with various desc and data mod. * */ inst mvne -nt "all data totally on p0 4-9" -io 2 -mf1 idr ar -mf2 reg ar rl 29 -mf3 ida ar reg; desc 1 -tn 4 -nn 24 -sd n; desc 3 -nn 33 ; data 1 /* the 9 bit data arranged in sequence of use */ -do -30 /* the strings are 0012 0012 3456 3456 0012 3456 */ 000022000022064126064126000022064126; data 2 /* ***mop sequence arranged in order *** */ -do -30 104 /* mvzb */ 060 /* ses es reset */ 124 /* mvza */ 064 /* ses es reset bz set */ 144 /* mfls */ 064 /* ses */ 040 /* enf for "+" insert. */ 200 "=" /* insb */ 220 "q" /* insa insert "q" */ 260 "q" /* insp */ 304 /* ign */ 344 /* mvc */ 420 "12345678" /* change table with string shown */ 024 /* insm */ 401 "2" /* load table entry 1 with "2" */ 024 /* insm */ 364 /* mors */ /* end of mop string */; data 3 /* arranged in order */ -do -34 " 12" "**12" "+3456" "+" "=" "q" "q" "0012" "1111" "2222" "3777"; page -all; /* ad3d1 * The zero indicator is set. * Three 9-bit floating point operands are used. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst ad3d -nt "9 bit + 9 bit -> 9 bit" -ir zr -mf1 idb ar reg -mf2 idb ar reg -mf3 idb ar reg -io 1; desc 1 -sd f -nn 63; desc 2 -sd f -nn 60; desc 3 -sd f -nn 63; data 1 -do -1 "+" (14)"2583" "00000" 005; data 2 -do -60 "-" (14)"2583" "00" 010; data 3 -do -8 "+" (61)"0" 177; page -all; /* ad3d2 * The zero indicator is set. * Three 9-bit leading sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst ad3d -nt "9 bit + 9 bit -> 9 bit" -ir zr tn -mf1 idb ar reg -mf2 idb ar reg -mf3 idb ar reg -io 2; desc 1 -sd l -nn 13 -sf 4; desc 2 -sd l -nn 13 -sf 4; desc 3 -sd l -nn 5 -sf 6; data 1 -do -12 "-" (2)"392457"; data 2 -do -4 "+" (2)"392457"; data 3 -do -4 "+" (4)"0"; page -all; /* ad3d3 * The negative indicator is set. * Three 4-bit floating point operands are used. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst ad3d -nt "4 bit + 4 bit -> 4 bit" -ir ng -mf1 idb ar -mf2 idb ar -mf3 idb ar -io 3; desc 1 -tn 4 -sd f -nn 22; desc 2 -tn 4 -sd f -nn 22; desc 3 -tn 4 -sd f -nn 22; data 1 -do -11 320 (5)000 "8888" 005; data 2 -do -1 260 (5) 000 "7777" 005; data 3 -do -4 320 (5)000 (4)001 005; page -all; /* ad3d4 * The negative indicator is set. * Three 4-bit trailing sign operands are used. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst ad3d -nt "4 bit + 4 bit -> 4 bit" -ir ng -mf1 idb ar -mf2 idb ar -mf3 idb ar -io 1; desc 1 -tn 4 -sd t -sf -1 -nn 8; desc 2 -tn 4 -sd t -sf -1 -nn 8; desc 3 -tn 4 -sd t -sf -1 -nn 8; data 1 -do -4 "555+"; data 2 -do -4 "777-"; data 3 -do -4 (3)002 015; page -all; /* ad3d5 * The truncation indicator is set. * Three 9-bit floating point operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst ad3d -nt "9 bit + 9 bit -> 9 bit" -ir tn -mf1 idb ar reg -mf2 idb ar reg -mf3 idb ar reg -io 2; desc 1 -sd f -nn 63; desc 2 -sd f -nn 63; desc 3 -sd f -nn 50; data 1 -do -1 "+" (61)"4" 003; data 2 -do -62 "+" (61)"5" 003; data 3 -do -48 "+" (48)"9" 020; page -all; /* ad3d6 * The truncation indicator is set. * Three 9-bit leading sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst ad3d -nt "9 bit + 9 bit -> 9 bit" -ir tn -mf1 idb ar reg -mf2 idb ar reg -mf3 idb ar reg -io 3; desc 1 -sd l -sf 5 -nn 37; desc 2 -sd l -sf 5 -nn 37; desc 3 -sd l -sf 10 -nn 37; data 1 -do -20 "+" (6)"121212"; data 2 -do -20 "+" (6)"212121"; data 3 -do -32 "+" (5)"0" (31)"3"; page -all; /* ad3d7 * Rounding is tested. * Three 9-bit trailing sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst ad3d -nt "9 bit + 9 bit -> 9 bit" -rb -mf1 idb ar reg -mf2 idb ar reg -mf3 idb ar reg -io 1; desc 1 -sd t -sf 5 -nn 37; desc 2 -sd t -sf 5 -nn 37; desc 3 -sd t -sf 10 -nn 37; data 1 -do -36 (6)"121212" "+"; data 2 -do -1 (6)"212121" "+"; data 3 -do -35 (5)"0" (31)"3" "+"; page -all; /* ad3d8 * The overflow indicator is set. * Three 4-bit unsigned operands are used. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst ad3d -nt "4 bit + 4 bit -> 4 bit" -ir ov -mf1 idb ar -mf2 idb ar -mf3 idb ar -io 2; desc 1 -tn 4 -sd n -sf 8 -nn 16; desc 2 -tn 4 -sd n -sf 8 -nn 16; desc 3 -tn 4 -sd n -sf 5 -nn 16; data 1 -do -15 (8) 042; data 2 -do -1 (8) 063; data 3 -do -8 (6) 125 120 000; page -all; /* ad3d9 * The exponent overflow indicator is set. * Three 9-bit floating point operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst ad3d -nt "9 bit + 9 bit -> 9 bit" -ir eo tn -mf1 idb ar reg -mf2 idb ar reg -mf3 idb ar reg -io 3; desc 1 -sd f -nn 6; desc 2 -sd f -nn 6; desc 3 -sd f -nn 6; data 1 -do -1 "+" (4)"9" 177; data 2 -do -5 "+" (4)"2" 177; data 3 -do -4 "+" "1222" 200; page -all; /* ad3d10 * A 9-bit operand is added to a 9-bit operand and stored in a 4-bit operand. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst ad3d -nt "9 bit + 9 bit -> 4 bit" -mf1 idb ar reg -mf2 idb ar reg -mf3 idb ar -io 1; desc 1 -sd l -nn 10; desc 2 -sd l -nn 10; desc 3 -sd l -tn 4 -nn 11 -cn 1; data 1 -do -1 "+" "987654321"; data 2 -do -8 "+" "123456789"; data 3 -do -1 00 301 (4)021 00; page -all; /* ad3d11 * A 4-bit operand is added to a 4-bit operand and stored in a 9-bit operand. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst ad3d -nt "4 bit + 4 bit -> 9 bit" -mf1 idb ar -mf2 idb ar -mf3 idb ar reg -io 2; desc 1 -sd t -tn 4 -sf -1 -nn 10 -cn 1; desc 2 -sd t -tn 4 -sf -1 -nn 10 -cn 1; desc 3 -sd t -sf -1 -nn 11; data 1 -do -1 00 230 166 124 062 033; data 2 -do -5 00 022 064 126 170 233; data 3 -do -10 (9)"1" "0" "+"; page -all; /* ad3d12 * A 9-bit operand is added to a 4-bit operand and stored in a 4-bit operand. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst ad3d -nt "9 bit + 4 bit -> 4 bit" -mf1 idb ar reg -mf2 idb ar -mf3 idb ar -io 3; desc 1 -sd f -nn 11; desc 2 -sd f -tn 4 -nn 12; desc 3 -sd f -tn 4 -nn 13; data 1 -do -9 "+" "987654321" 036; data 2 -do -5 261 043 105 147 211 036; data 3 -do -6 301 (4)021 001 34; page -all; /* ad3d13 * A 9-bit operand is added to a 4-bit operand and stored in a 9-bit operand. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst ad3d -nt "9 bit + 4 bit -> 9 bit" -mf1 idb ar reg -mf2 idb ar -mf3 idb ar reg -io 1; desc 1 -sd n -sf -5 -nn 9; desc 2 -sd n -tn 4 -sf -5 -nn 9; desc 3 -sd n -sf -5 -nn 10; data 1 -do -8 "987654321"; data 2 -do -1 022 064 126 170 22; data 3 -do -5 (9)"1" "0"; page -all; /* ad3d14 * Leading, trailing, and floating point operands are mixed. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst ad3d -nt "9 bit + 9 bit -> 9 bit" -mf1 idb ar reg -mf2 idb ar reg -mf3 idb ar reg -io 2; desc 1 -sd l -sf 7 -nn 10; desc 2 -sd t -sf 7 -nn 10; desc 3 -sd f -nn 12; data 1 -do -9 "+" "987654321"; data 2 -do -4 "123456789" "+"; data 3 -do -8 "+" (9)"1" "0" 007; page -all; /* ad3d15 * Floating point, unsigned, and leading sign operands are mixed. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst ad3d -nt "4 bit + 4 bit -> 4 bit" -mf1 idb ar -mf2 idb ar -mf3 idb ar -io 3; desc 1 -tn 4 -sd f -nn 12; desc 2 -tn 4 -sd n -nn 9; desc 3 -tn 4 -sd l -nn 13 -sf -2; data 1 -do -6 271 207 145 103 041 000; data 2 -do -4 022 064 126 170 22; data 3 -do -5 301 (4)021 00000; page -all; /* ad2d1 * Use RL mod and cn field with indirect descriptors * add 9 bit scaled to 9 bit scaled * two character offset * */ inst ad2d -nt "9scaled+9scal->9scaled" -io 2 -ir ng -mf1 ar rl 10 idb reg -mf2 ar rl 10 idb reg; desc1 -cn 1 -sd t ; desc2 -cn 1 -sd t ; data 1 -do -9 " " (9) "2" "-"; data 2 -do -9 "*" (9) "1" "+"; data 3 "*" (9) "1" "-"; page -all; /* ad2d2 * Use RL mod and cn field with indirect descriptors * 9 bit scaled to 9 bit scaled * one character offset * */ inst ad2d -nt "9scaled+9scaled->9scaled" -io 2 -ir ng -mf1 ar rl 10 idb reg -mf2 ar rl 10 idb reg; desc1 -cn 1 -sd t ; desc2 -cn 1 -sd t ; data 1 -do -10 " " (9) "2" "-"; data 2 -do -10 "*" (9) "1" "+"; data 3 "*" (9) "1" "-"; page -all; /* ad2d3 * Use RL mod and cn field * 9 bit scaled to 9 bit scaled * no indirect descriptors * */ inst ad2d -nt "9scaled+9scaled->9scaled" -io 2 -ir ng -mf1 ar rl 10 reg -mf2 ar rl 10 reg; desc1 -cn 1 -sd t ; desc2 -cn 1 -sd t ; data 1 -do -9 " " (9) "2" "-"; data 2 -do -9 "*" (9) "1" "+"; data 3 "*" (9) "1" "-"; page -all; /* ad2d4 * Use no modification * 9bit scaled added to 9 bit scaled * */ inst ad2d -nt "9scaled+9scaled->9scaled" -io 2 -ir ng; desc1 -cn 1 -sd t -nn 12; desc2 -cn 1 -sd t -nn 12; data 1 -do -12 " " (11) "2" "-"; data 2 -do -12 "*" (11) "1" "+"; data 3 "*" (11) "1" "-"; page -all; /* ad2d5 * Use ar and rl * 9 bit scaled to 9 bit scaled * */ inst ad2d -nt "ar and rl modification" -io 2 -ir ng -mf1 ar rl 10 -mf2 ar rl 10 ; desc1 -cn 1 -sd t ; desc2 -cn 1 -sd t ; data 1 -do -9 " " (9) "2" "-"; data 2 -do -9 "*" (9) "1" "+"; data 3 "*" (9) "1" "-"; page -all; /* ad2d6 * Use ar and rl modification, desc1 * Use ar rl idb reg on desc2 * 9 bit scaled to 9 bit scaled * */ inst ad2d -nt "9scaled+9scaled->9scaled" -io 2 -ir ng -mf1 ar rl 10 -mf2 ar rl 10 idb reg; desc1 -cn 1 -sd t ; desc2 -cn 1 -sd t ; data 1 -do -9 " " (9) "2" "-"; data 2 -do -9 "*" (9) "1" "+"; data 3 "*" (9) "1" "-"; page -all; /* ad2d7 * maximum length add, leading sign * one character over next page * all modification taken */ inst ad2d -nt "9scaled+9scaled->9scaled" -io 2 -mf1 ar rl 63 idb reg -mf2 ar rl 63 idb reg; desc1 -cn 1 -sd l ; desc2 -cn 1 -sd l ; data 1 -do 4033 " " "+33" (15) "8642"; data 2 -do 4033 "*" "+11" (15) "2357"; data 3 "*" "+45" (14) "1000" "0999"; page -all; /* ad2d8 * This is a simple test * 9 bit add to 9 bit all scaled trailing sign * */ inst ad2d -nt "simple test"; desc1 -sd t -sf 10 -nn 63; desc2 -sd t -sf 10 -nn 63; data 1 "11" (15) "1111" "-"; data 2 "22" (15) "2222" "+"; data 3 "11" (15) "1111" "+"; page -all; /* ad2d9 * maximum length add resulting * in an overflow * all modification taken * 9 bit scaled to 9 bit scaled */ inst ad2d -nt "truncation fault" -io 1 -ir ov -mf1 ar rl 63 idb reg -mf2 ar rl 63 idb reg; desc1 -sd l -cn 1; desc2 -sd l -cn 1; data 1 -do 4033 " " "+33" (15) "8642"; data 2 -do 4033 "*" "+71" (15) "2357"; data 3 "*" "+" "05" (14) "1000" "0999"; page -all; /* ad2d10 * maximum length over two pages * no faults, 9 bit to 4 bit * */ inst ad2d -nt "9 bit -> 4 bit" -io 1 -mf1 ar rl 63 -mf2 ar rl 63 ; desc1 -sd t ; desc2 -sd t -tn 4; data 1 -do 4033 "33" (15) "3333" "+"; data 2 -do 4064 021021 (7) 021021021021 02126; data 3 104104 (7) 104104104104 1043; page -all; /* ad2d11 * 9 bit to 4 bit all page faults possible * no reg modification on desc2 * */ inst ad2d -nt "9bit ->4bit" -io 2 -mf1 ar rl 63 idb reg -mf2 ar rl 63 idb ; desc1 -cn 1 -sd l; desc2 -cn 1 -sd t -tn 4; data 1 -do 4033 " " "+33" (15) "3333"; data 2 -do 4068 "*" 021021 (7) 021021021021 0213; data 3 "*" 104104 (7) 104104104104 1043; page -all; /* ad2d12 * 4 bit added to 4 bit * maximum length * all page faults taken * no reg modification */ inst ad2d -nt "4 bit + 4bit" -io 1 -mf1 ar rl 63 idb -mf2 ar rl 63 idb; desc1 -cn 1 -sd t -tn 4; desc2 -cn 1 -sd t -tn 4; data 1 -do 4065 " " 021021 (7) 021021021021 0213; data 2 -do 4065 "*" 021021 (7) 021021021021 0213; data 3 "*" 042042 (7) 042042042042 0423; page -all; /* ad2d13 * floating point add * 9 bit to 9bit * all page faults taken * */ inst ad2d -nt "9bit float add" -io 1 -mf1 ar rl 63 reg idb -mf2 ar rl 63 reg idb; desc1 -sd f; desc2 -sd f; data 1 -do -1 "+" (20) "0" (10) "1" (30) "0" "1" 005; data 2 -do -1 "+" (20) "0" (10) "1" (30) "0" "1" 006; data 3 "+" (19) "0" "1" (9) "2" "1" (29) "0" "11" 005; page -all; /* ad2d14 * 4 bit floating added to * 4 bit floating * */ inst ad2d -nt "4 float to 4 float" -io 1 -mf1 ar rl 10 ida -mf2 ar rl 10 ida; desc1 -sd f -tn 4; desc2 -sd f -tn 4; data 1 -do -1 300 000 021 021 000; data 2 -do -1 300 000 021 021 000; data 3 300 000 042 042 000; page -all; /* ad2d15 * test 4bit scaled to 9 bit * */ inst ad2d -nt "4bit->9bit" -io 1 -mf1 ar rl 5 idb -mf2 ar rl 5 idb reg; desc 1 -tn 4 -sd l; desc 2 -sd n; data 1 30102100; data 2 -do 4 "02222"; data 3 "03332"; page -all; /* ad2d16 * test 9 floating to 4 floating * */ inst ad2d -nt "9float->4 float" -io 1 -mf1 ar rl 5 idb reg -mf2 ar rl 7 idb; desc 1 -sd f; desc 2 -sd f -tn 4; data 1 "+" (3) "1" 000; data 2 300 042 040 00; data 3 30006306000; page -all; /* ad2d17 * 4 float to 9 float * */ inst ad2d -nt "4float -> 9float" -io 1 -mf1 ar rl 7 idb -mf2 ar rl 7 idb reg; desc 1 -sd f -tn 4 ; desc 2 -sd f; data 1 300 042 040 00; data 2 "+0" (3) "1" "0" 000; data 3 "+01332" 000; page -all; /* ad2d18 * 9 scaled to 9 float * */ inst ad2d -nt "9sacled to 9 float" -io 2 -mf1 ar rl 5 idb reg -mf2 ar rl 6 idb reg; desc1 -sd l; desc2 -sd f; data 1 "+" (4) "3"; data 2 "+" "0" (3) "2" 000; data 3 "+" "3555" 000; page -all; /* ad2d19 * 9 float to 9 scaled * */ inst ad2d -nt "9 float to 9 scaled" -io 2 -mf1 ar rl 6 idb reg -mf2 ar rl 5 idb reg; desc1 -sd f; desc2 -sd l; data 1 "+" "0" (3) "2" 000; data 2 "+" (4) "3"; data 3 "+" "3555"; page -all; /* ad2d20 * 9 scaled to 4 float * */ inst ad2d -nt "9scaled->4float" -io 2 -mf1 ar rl 5 idb reg -mf2 ar rl 6 idb; desc 1 -sd l; desc 2 -sd f -tn 4; data 1 "+0" (3) "2"; data 2 303063 000; data 3 305125000; page -all; /* ad2d21 * 9 float to 4 scaled * */ inst ad2d -nt "9float->4scaled" -io 1 -mf1 ar rl 6 idb reg -mf2 ar rl 4 idb; desc 1 -sd f; desc 2 -sd l -tn 4; data 1 -do -1 "+0" (3) "2" 000; data 2 -do -2 303 063; data 3 305125; page -all; /* ad2d22 * 4scaled to 9 float * */ inst ad2d -nt "4scaled-.9float" -io 1 -mf1 ar rl 4 idb -mf2 ar rl 6 idb reg; desc 1 -sd l -tn 4; desc 2 -sd f; data 1 -do -1 303063; data 2 -do -1 "+0" (3) "2" 000; data 3 "+0" (3) "5" 000; page -all; /* ad2d23 * 4 floating to 9 scaled * */ inst ad2d -nt "4float->9scaled" -io 1 -mf1 ar rl 6 idb -mf2 ar rl 5 idb reg; desc 1 -sd f -tn 4; desc 2 -sd n; data 1 -do -1 303 063 000; data 2 -do -2 "00" "555"; data 3 "00" "888"; page -all; /* ad2d24 * 4 scaled to 4 float * */ inst ad2d -nt "4scaled to 4 float" -io 1 -mf1 ar rl 4 idb -mf2 ar rl 6 idb; desc 1 -tn 4 -sd l; desc 2 -tn 4 -sd f; data 1 -do -1 303 063; data 2 -do -1 302042000; data 3 305125 000; page -all; /* ad2d25 * 4 floating to 4 scaled * */ inst ad2d -nt "4 floating to 4 scaled" -io 2 -mf1 ar rl 6 idb -mf2 ar rl 4 idb; desc 1 -tn 4 -sd f; desc 2 -tn 4 -sd l; data 1 -do -1 302042000; data 2 -do -1 303 063; data 3 305125; page -all; /* ad2d26 * * Use RL mod and strings of length 63 and cn fields. */ inst ad2d -nt "63 char string" -io 2 -mf1 rl 63 idb reg ar -mf2 rl 63 idb reg ar; desc 1 -sd n -cn 1; desc 2 -sd n -cn 2; data 1 -do -21 " " "234" (15) "1234"; data 2 -do -22 "**" "345" (15) "2345"; data 3 "**" "579" (15) "3579"; /* This is just test data. This is how descriptor 2 * data is going to look after the ad2d. */ page -all; /* sb3d1 * a simple test * no modification used - 9 bit - 9 bit to 9 bit * */ inst sb3d -nt"9bit-9bit->9bit" -io 2; desc1 -sd l -cn 1 -nn 10; desc2 -sd l -cn 1 -nn 10; desc3 -sd l -cn 1 -nn 10; data 1 " -" (9) "1"; data 2 " +" (9) "1"; data 3 000 "+" (9) "2"; page -all; /* sb3d2 * 9 bit - 9 bit to 9 bit * negative indicator on * all page faults taken * */ inst sb3d -nt "9 bit - 9bit to 9 bit" -io 1 -ir ng -mf1 ar rl 23 idb reg -mf2 ar rl 24 idb reg -mf3 ar rl 24 idb reg; desc1 -sd t -cn 2; desc2 -sd t -cn 1; desc3 -sd l -cn 3; data 1 -do -9 " " (5) "0" (8) "12" "1+"; data 2 -do -11 " " (6) "0" (8) "23" "2-"; data 3 000000000 "-" (6) "0" (8) "35" "3"; page -all; /* sb3d3 * 9 bit scaled to 4 bit float to * 4 bit float * */ inst sb3d -nt "4bit float-9bit to 4bit" -io 2 -ir ng -mf1 ar rl 10 idb reg -mf2 ar rl 10 idb -mf3 ar rl 10 idb; desc1 -sd t -cn 1; desc2 -sd f -tn 4; desc3 -sd f -tn 4; data 1 -do -10 " " (5) "0" (4) "2" "+"; data 2 -do -4 300 000 021 021 000; data 3 -do -4 320 000 021 021 000; page -all; /* sb3d4 * 9 bit scaled - 9 bit scaled to * 9 bit scaled * all page faults taken * truncation indicator set * */ inst sb3d -nt "9bit-9bit to 9bit" -io 2 -ir tn -mf1 ar rl 63 idb reg -mf2 ar rl 63 idb reg -mf3 ar rl 63 idb reg; desc1 -cn 1 -sd l -sf 5; desc2 -cn 2 -sd l -sf 10; desc3 -cn 3 -sd l -sf 10; data 1 -do 4033 " -" (5) "0" (19) "543"; data 2 -do 4034 " +" (5) "0" (19) "765"; data 3 -do 4035 (3) 000 "+" (5) "0" "76577" (17) "120" "0"; page -all; /* sb3d5 * 9 bit scaled - 9 bit scaled tp * 9 bit scaled * all page faults taken * rounding desired, therefore no truncation * */ inst sb3d -nt "no truncation" -io 3 -mf1 ar rl 63 idb reg -mf2 ar rl 63 idb reg -mf3 ar rl 63 idb reg -rb; desc1 -cn 1 -sd l -sf 5; desc2 -cn 2 -sd l -sf 10; desc3 -cn 1 -sd l -sf 10; data 1 -do 4033 " -" (5) "0" (19) "543"; data 2 -do 4034 " +" (5) "0" (19) "765"; data 3 -do 4033 000 "+" (5) "0" "76577" (17) "120" "0"; page -all; /* sb3d6 * all operands 4 bit scaled * all page faults taken * negative indicator set * */ inst sb3d -nt "4 bit-4bit to 4bit scaled" -io 1 -ir ng -mf1 ar rl 63 idb -mf2 ar rl 63 idb -mf3 ar rl 63 idb; desc1 -sd l -tn 4 -cn 1; desc2 -sd l -tn 4 -cn 1; desc3 -sd l -tn 4 -cn 1; data 1 " " 300 (26) 000 (4) 105 (8) 000; data 2 " " 300 (26) 000 (3) 105 104 (7) 000; data 3 000320 (29) 000 001 (8) 000; page -all; /* sb3d7 * 9 bit scaled - 9 bit scaled to * 9 bit scaled * all page faults taken * rounding desired and it occurs * */ inst sb3d -nt "rounded result" -io 2 -rb -mf1 ar rl 63 idb reg -mf2 ar rl 63 idb reg -mf3 ar rl 63 idb reg; desc1 -cn 1 -sd l -sf 5; desc2 -cn 1 -sd l -sf 10; desc3 -sd l -cn 1 -sf 10; data 1 -do 4033 " -" (5) "0" (17) "543" "043543"; data 2 -do 4033 " +" (5) "0" (19) "765"; data 3 -do 4033 000 "+" (5) "0" "76577" (16) "120" "1195"; page -all; /* sb3d8 * all operands 9 bit float * all page faults taken * no rounding needed : */ inst sb3d -nt "9 bit floating" -io 1 -mf1 ar rl 10 idb reg -mf2 ar rl 10 idb reg -mf3 ar rl 10 idb reg; desc1 -sd f -cn 1; desc2 -sd f -cn 1; desc3 -sd f -cn 1; data 1 -do -10 " -" (8) "1" 001; data 2 -do -10 " +" (8) "2" 001; data 3 -do -10 000 "+" (8) "3" 001; page -all; /* sb3d9 * all operands 9 bit floating * rounding not desired, but required * set round bit * */ inst sb3d -nt "round floating" -io 2 -rb -mf1 ar rl 10 ida -mf2 ar rl 10 ida -mf3 ar rl 10 ida; desc1 -cn 1 -sd f; desc2 -cn 1 -sd f; desc3 -sd f; data 1 " +" (8) "3" 000; data 2 " +" (8) "9" 001; data 3 "+" "9" (7) "6" 001; page -all; /* sb3d10 * all operands 9 bit floating * truncation will occur * */ inst sb3d -nt "truncation" -io 3 -ir tn -mf1 ar rl 10 -mf2 ar rl 10 -mf3 ar rl 10; desc1 -sd f; desc2 -sd f; desc3 -sd f; data 1 "+" (8) "3" 000; data 2 "+" (8) "9" 001; data 3 "+" "9" (6) "6" "5" 001; page -all; /* sb3d11 * all operands 9 bit floating * truncation will occur : */ inst sb3d -nt "truncation" -ir ng tn -mf1 ar rl 10 -mf2 ar rl 10 -mf3 ar rl 10; desc1 -sd f; desc2 -sd f; desc3 -sd f; data 1 -do -4 "+" (8) "3" 000; data 2 -do -4 "-" (8) "9" 001; data 3 -do -4 "-" "10" (6) "3" 002; page -all; /* sb3d12 * 4 scaled - 4 scaled to 4 float * */ inst sb3d -nt "4sc-4sc->4float" -io 3 -mf1 ar rl 4 idb -mf2 ar rl 4 idb -mf3 ar rl 6 idb; desc 1 -tn 4 -sd l; desc 2 -tn 4 -sd l; desc 3 -tn 4 -sd f; data 1 -do -1 323 063; data 2 -do -1 302 042; data 3 -do -1 305 125 000; page -all; /* sb3d13 * 4 scaled -4 float to 4 scaled * */ inst sb3d -nt "4scaled-4float to 4 scaled" -io 2 -mf1 ar rl 6 idb -mf2 ar rl 4 idb -mf3 ar rl 4 idb; desc 1 -tn 4 -sd f; desc 2 -tn 4 -sd l; desc 3 -tn 4 -sd l; data 1 -do -1 323 063 000; data 2 -do -1 302 042; data 3 -do -1 305 125; page -all; /* sb3d14 * 4 floating - 9 scaled to 9 floating * */ inst sb3d -nt "4float-9scaled->9float" -io 1 -mf1 ar rl 4 idb reg -mf2 ar rl 6 idb -mf3 ar rl 5 idb reg; desc 1 -sd t; desc 2 -sd f -tn 4; desc 3 -sd f; data 1 -do -3 "333-"; data 2 -do -2 302 042 000; data 3 -do -4 "+555" 000; page -all; /* sb3d15 * 9 scaled - 4 bit to 9 scaled * */ inst sb3d -nt "9bit-4bit->9bit" -io 1 -mf1 ar rl 5 idb -mf2 ar rl 5 idb reg -mf3 ar rl 5 idb reg; desc 1 -tn 4 -sd l; desc 2 -sd n; desc 3 -sd n; data 1 -do -1 321 02100; data 2 -do 4 "02222"; data 3 -do -1 "03332"; page -all; /* sb3d16 * 4float-9float to 4 float * */ inst sb3d -nt "4flo-9flo->4flo" -io 1 -mf1 ar rl 5 idb reg -mf2 ar rl 7 idb -mf3 ar rl 7 idb; desc 1 -sd f; desc 2 -sd f -tn 4; desc 3 -sd f -tn 4; data 1 -do -1 "-" (3) "1" 000; data 2 -do -1 300 042 040 00; data 3 -do -1 30006306000; page -all; /* sb3d17 * 9 float - 4 float to 9 float * */ inst sb3d -nt "9flo-4flo->9flo" -io 1 -mf1 ar rl 7 idb -mf2 ar rl 7 idb reg -mf3 ar rl 7 idb reg; desc 1 -sd f -tn 4 ; desc 2 -sd f; desc 3 -sd f; data 1 -do -1 320 042 040 00; data 2 -do -1 "+0" (3) "1" "0" 000; data 3 -do -1 "+01332" 000; page -all; /* sb3d18 * 9 float-9 scaled to 9 float * */ inst sb3d -nt "9flo-9sca->9flo" -io 2 -mf1 ar rl 5 idb reg -mf2 ar rl 6 idb reg -mf3 ar rl 6 idb reg; desc1 -sd l; desc2 -sd f; data 1 -do -1 "-" (4) "3"; data 2 -do -1 "+" "0" (3) "2" 000; data 3 -do -1 "+" "3555" 000; page -all; /* sb3d19 * 9scaled - 9 floating to 9 scaled * */ inst sb3d -nt "9sca-9flo->9sca" -io 2 -mf1 ar rl 6 idb reg -mf2 ar rl 5 idb reg -mf3 ar rl 5 idb reg; desc1 -sd f; desc2 -sd l; desc 3 -sd l; data 1 -do -1 "-" "0" (3) "2" 000; data 2 -do -1 "+" (4) "3"; data 3 -do -1 "+" "3555"; page -all; /* sb3d20 * 4 float - 9 scaled to 4 float * */ inst sb3d -nt "4flo-9sca->9sca" -io 2 -mf1 ar rl 5 idb reg -mf2 ar rl 6 idb -mf3 ar rl 6 idb; desc 1 -sd l; desc 2 -sd f -tn 4; desc 3 -sd f -tn 4; data 1 -do -1 "-0" (3) "2"; data 2 -do -1 303063 000; data 3 -do -1 305125000; page -all; /* sb3d21 * 4scaled - 9 float to 4 scaled * */ inst sb3d -nt "4sca-9flo->4sca" -io 1 -mf1 ar rl 6 idb reg -mf2 ar rl 4 idb -mf3 ar rl 4 idb; desc 1 -sd f; desc 2 -sd l -tn 4; desc 3 -sd l -tn 4; data 1 -do -1 "-0" (3) "2" 000; data 2 -do -2 303 063; data 3 305125; page -all; /* sb3d22 * 9 float - 4 scaled to 9 float * */ inst sb3d -nt "9flo-4sca->9flo" -io 1 -mf1 ar rl 4 idb -mf2 ar rl 6 idb reg -mf3 ar rl 6 idb reg; desc 1 -sd l -tn 4; desc 2 -sd f; desc 3 -sd f; data 1 -do -1 323063; data 2 -do -1 "+0" (3) "2" 000; data 3 "+0" (3) "5" 000; page -all; /* sb3d23 * 9 scaled - 4 floating to 9 scaled * */ inst sb3d -nt "9sca-4flo->9sca" -io 1 -mf1 ar rl 6 idb -mf2 ar rl 5 idb reg -mf3 ar rl 5 idb reg; desc 1 -sd f -tn 4; desc 2 -sd n; desc 3 -sd n; data 1 -do -1 323 063 000; data 2 -do -2 "00" "555"; data 3 "00" "888"; page -all; /* sb3d24 * 4 float - 4 scaled to 4 float * */ inst sb3d -nt "4flo-4sca->4flo" -io 1 -mf1 ar rl 4 idb -mf2 ar rl 6 idb -mf3 ar rl 6 idb; desc 1 -tn 4 -sd l; desc 2 -tn 4 -sd f; desc 3 -tn 4 -sd f; data 1 -do -1 323 063; data 2 -do -1 302042000; data 3 305125 000; page -all; /* sb3d25 * 4 scaled - 4 floatint to 4 scaled * */ inst sb3d -nt "4sca-4flo->4flo" -io 2 -mf1 ar rl 6 idb -mf2 ar rl 4 idb -mf3 ar rl 4 idb; desc 1 -tn 4 -sd f; desc 2 -tn 4 -sd l; desc 3 -tn 4 -sd l; data 1 -do -1 322042000; data 2 -do -1 303 063; data 3 305125; page -all; /* sb3d26 * * Subtraction yields a zero number. */ inst sb3d -nt "Result = zero" -io 1 -ir zr -mf1 ar -mf2 ida -mf3 ar reg idb rl 12; desc 1 -sd l -nn 7 -sf 2; desc 2 -sd t -nn 6 -sf 3; desc 3 -sd n -sf -4; data 1 -do -3 053 "55" "5550"; data 2 -do -4 "5555" "5" 053; data 3 -do -2 "00" "0000000000"; page -all; /* sb2d1 * The zero indicator is set. * Two 4-bit floating point operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst sb2d -nt "4 bit - 4 bit -> 4 bit" -ir zr -mf1 idb ar -mf2 idb ar -io 1; desc 1 -tn 4 -sd f -nn 63; desc 2 -tn 4 -sd f -nn 63; data 1 -do -1 261 (30)021 00; data 2 -do -31 261 (30)021 00; data 3 300 (29)000 007 36; page -all; /* sb2d2 * The zero indicator is set. * Two 4-bit operands with leading sign are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst sb2d -nt "4 bit - 4 bit -> 4 bit" -ir zr -mf1 idb ar -mf2 idb ar -io 2; desc 1 -tn 4 -sd l -sf 5 -nn 4; desc 2 -tn 4 -sd l -sf 4 -nn 5; data 1 -do -1 263 222; data 2 -do -2 263 222; data 3 300 000 00; page -all; /* sb2d3 * The negative indicator is set. * Two 9-bit floating point operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst sb2d -nt "9 bit - 9 bit -> 9 bit" -ir ng -mf1 idb ar reg -mf2 idb ar reg -io 1; desc 1 -sd f -nn 18; desc 2 -sd f -nn 18; data 1 -do -14 "+" (3)"98765" "8" 007; data 2 -do -4 "+" (3)"32411" "7" 007; data 3 "-" (3)"66354" "1" 007; page -all; /* sb2d4 * The negative indicator is set. * Two 9-bit operands with trailing sign are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst sb2d -nt "9 bit - 9 bit -> 9 bit" -ir ng -mf1 idb ar reg -mf2 idb ar reg -io 2; desc 1 -sd t -sf 5 -nn 25; desc 2 -sd t -sf 5 -nn 25; data 1 -do -23 (24) "5" "+"; data 2 -do -4 (24) "4" "-"; data 3 (24) "9" "-"; page -all; /* sb2d5 * The truncation indicator is set. * Two 4-bit floating point operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst sb2d -nt "4 bit - 4 bit -> 4 bit" -ir tn -mf1 idb ar -mf2 idb ar -io 2; desc 1 -tn 4 -sd f -nn 8; desc 2 -tn 4 -sd f -nn 8; data 1 -do -2 331 231 231 004; data 2 -do -2 270 166 124 003; data 3 301 010 166 005; page -all; /* sb2d6 * The truncation indicator is set. * Two 9-bit leading sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst sb2d -nt "9 bit - 9 bit -> 9 bit" -ir tn -mf1 idb ar reg -mf2 idb ar reg -io 2; desc 1 -sd l -sf 4 -nn 63; desc 2 -sd l -sf 5 -nn 62; data 1 -do -60 "+" (62)"3"; data 2 -do -3 "+" (61)"9"; data 3 "+" (60)"6" "5"; page -all; /* sb2d7 * Rounding is tested. * Two 9-bit trailing sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst sb2d -nt "9 bit - 9 bit -> 9 bit" -rb -mf1 idb ar reg -mf2 idb ar reg -io 1; desc 1 -sd t -sf 4 -nn 63; desc 2 -sd t -sf 5 -nn 62; data 1 -do -38 (62)"3" "+"; data 2 -do -36 (61)"9" "+"; data 3 (61)"6" "+"; page -all; /* sb2d8 * The overflow indicator is set. * Two 4-bit trailing sign operands are used. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst sb2d -nt "4 bit - 4 bit -> 4 bit" -ir ov -mf1 idb ar -mf2 idb ar -io 2; desc 1 -tn 4 -sd t -sf 3 -nn 7; desc 2 -tn 4 -sd t -sf 3 -nn 7; data 1 (3)163 32; data 2 (3)231 26; data 3 163 163 162 300; page -all; /* sb2d9 * The exponent overflow indicator is set. * Two 4-bit floating point operands are used. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst sb2d -nt "4 bit - 4 bit -> 4 bit" -ir eo tn -mf1 idb ar -mf2 idb ar -io 1; desc 1 -tn 4 -sd f -nn 8 -cn 1; desc 2 -tn 4 -sd f -nn 8 -cn 1; data 1 -do -1 00 330 210 210 177; data 2 -do -4 00 267 167 167 177; data 3 00 301 146 146 200; page -all; /* sb2d10 * Leading and trailing signs are mixed. * Two 9-bit operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst sb2d -nt "9 bit - 9 bit -> 9 bit" -mf1 idb ar reg -mf2 idb ar reg -io 2; desc 1 -sd l -sf -8 -nn 42; desc 2 -sd t -sf -8 -nn 42; data 1 -do -40 "+" (4)"1234000000" "9"; data 2 -do -2 (4)"9876543210" "9" "+"; data 3 (4) "8642543210" "0+"; page -all; /* sb2d11 * Leading sign and floating point operands are mixed. * Two 4-bit operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst sb2d -nt "4 bit - 4 bit -> 4 bit" -mf1 idb ar -mf2 idb ar -io 1; desc 1 -tn 4 -sd l -nn 8; desc 2 -tn 4 -sd f -nn 10; data 1 -do -1 271 043 064 000; data 2 -do -1 271 207 145 000 000; data 3 300 144 061 000 000; page -all; /* sb2d12 * A leading sign 9-bit and an unsigned 4-bit operand are mixed. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst sb2d -nt "9 bit - 4 bit -> 4 bit" -mf1 idb ar reg -mf2 idb ar -io 2; desc 1 -sd l -nn 8; desc 2 -sd n -tn 4 -nn 7; data 1 -do -1 "+" "1234500"; data 2 -do -1 230 166 120 00; data 3 206 102 000 00; page -all; /* sb2d13 * Unsigned 4-bit and 9-bit operands are mixed. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst sb2d -nt "4 bit - 9 bit -> 9 bit" -mf1 idb ar -mf2 idb ar reg -io 1; desc 1 -sd n -sf 31 -tn 4 -nn 7; desc 2 -sd n -sf 31 -nn 7; data 1 -do -1 022 064 120 00 ; data 2 -do -3 "9876500"; data 3 "8642000"; page -all; /* sb2d14 * Floating point and trailing sign operands are mixed. * Two 9-bit operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst sb2d -nt "9 bit - 9 bit -> 9 bit" -mf1 idb ar reg -mf2 idb ar reg -io 2; desc 1 -sd f -nn 9; desc 2 -sd t -sf 12 -nn 8; data 1 -do -7 "+" "1234500" 014; data 2 -do -3 "9876500" "+"; data 3 "8642000" "+"; page -all; /* sb2d15 * The special plus sign capability for 4-bit operands is tested. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst sb2d -nt "4 bit - 4 bit -> 4 bit" -pb -mf1 idb ar -mf2 idb ar -io 1; desc 1 -sd l -nn 7; desc 2 -sd l -tn 4 -nn 8; data 1 -do -7 "+" "1234500"; data 2 -do -2 261 043 105 000; data 3 261 021 020 120; page -all; /* mp3d1 * 9 bit scaled * 9 bit scaled to * 9 bit scaled * all page faults taken * rounding desired and it occurs * */ inst mp3d -nt "rounded result" -io 2 -rb -mf1 ar rl 63 idb reg -mf2 ar rl 63 idb reg -mf3 ar rl 63 idb reg; desc1 -cn 1 -sd l -sf 5; desc2 -cn 1 -sd l -sf 10; desc3 -sd l -cn 1 -sf 20; data 1 -do 4033 " +" (20) "0" (12) "543" "043543"; data 2 -do 4033 " +" (47) "0" (5) "765"; data 3 -do 4033 000 "+000000000041622703784865905405405405405405405" "36711707549441337"; page -all; /* mp3d2 * a simple test * no modification used * 9 bit*9 bit to 9 bit * */ inst mp3d -nt"9bit*9bit->9bit" -io 2 -ir ov ng; desc1 -sd l -cn 1 -nn 10; desc2 -sd l -cn 1 -nn 10; desc3 -sd l -cn 1 -nn 10; data 1 " -" (9) "1"; data 2 " +" (9) "1"; data 3 000 "-" "987654321"; page -all; /* mp3d3 * 9 bit*9 bit to 9 bit * negative indicator on * all page faults taken * */ inst mp3d -nt "9 bit*9bit to 9 bit" -io 1 -ir ng -mf1 ar rl 23 idb reg -mf2 ar rl 24 idb reg -mf3 ar rl 24 idb reg; desc1 -sd t -cn 2; desc2 -sd t -cn 1; desc3 -sd l -cn 3; data 1 -do -9 " " (15) "0" (3) "12" "1+"; data 2 -do -11 " " (16) "0" (3) "23" "2-"; data 3 (3) 000 "-" (10) "0" "2816038295072"; page -all; /* mp3d4 * 9 bit scaled to 4 bit float to * 4 bit float * */ inst mp3d -nt "4bit float*9bit to 4bit" -io 2 -mf1 ar rl 10 idb reg -mf2 ar rl 10 idb -mf3 ar rl 10 idb; desc1 -sd t -cn 1; desc2 -sd f -tn 4; desc3 -sd f -tn 4; data 1 -do -10 " " (5) "0" (4) "2" "+"; data 2 -do -4 300 000 000 021 000; data 3 -do -4 300 002 104 102 000; page -all; /* mp3d5 * 9 bit scaled*9 bit scaled to * 9 bit scaled * all page faults taken * truncation indicator set * */ inst mp3d -nt "9bit*9bit to 9bit" -io 2 -mf1 ar rl 63 idb reg -mf2 ar rl 63 idb reg -mf3 ar rl 63 idb reg; desc1 -cn 1 -sd l ; desc2 -cn 2 -sd l -sf 1; desc3 -cn 3 -sd l -sf 1; data 1 -do 4033 " +" (5) "0" (19) "543"; data 2 -do 4034 " +" (60) "0" "11"; data 3 -do 4035 (3) 000 "+" (4) "0" "5" (18) "978" "973"; page -all; /* mp3d6 * 9 bit scaled*9 bit scaled tp * 9 bit scaled * all page faults taken * rounding desired, therefore no truncation * */ inst mp3d -nt "no truncation" -io 3 -ir ng -mf1 ar rl 63 idb reg -mf2 ar rl 63 idb reg -mf3 ar rl 63 idb reg -rb; desc1 -cn 1 -sd l -sf 5; desc2 -cn 2 -sd l -sf 10; desc3 -cn 1 -sd l -sf 10; data 1 -do 4033 " -" (53) "0" (3) "543"; data 2 -do 4034 " +" (53) "0" (3) "765"; data 3 -do 4033 000 "-" (39) "0" "416227037016205395" (5) "0"; page -all; /* mp3d7 * all operands 4 bit scaled * all page faults taken * negative indicator set * */ inst mp3d -nt "4 bit*4bit to 4bit scaled" -io 1 -mf1 ar rl 63 idb -mf2 ar rl 63 idb -mf3 ar rl 63 idb; desc1 -sd l -tn 4 -cn 1; desc2 -sd l -tn 4 -cn 1; desc3 -sd l -tn 4 -cn 1; data 1 " " 300 (26) 000 (4) 105 (8) 000; data 2 " " 300 (26) 000 (3) 105 104 (7) 000; data 3 000300 (21) 000 002 006 141 025 141 127 002 110 (9) 000; page -all; /* mp3d8 * all operands 9 bit float * all page faults taken * no rounding needed * */ inst mp3d -nt "9 bit floating" -io 1 -mf1 ar rl 10 idb reg -mf2 ar rl 10 idb reg -mf3 ar rl 10 idb reg; desc1 -sd f -cn 1; desc2 -sd f -cn 1; desc3 -sd f -cn 1; data 1 -do -10 " +" (4) "0" (4) "1" 001; data 2 -do -10 " +" (4) "0" (4) "2" 001; data 3 -do -10 000 "+" "02468642" 002; page -all; /* mp3d9 * all operands 9 bit floating * rounding not desired, but required * set round bit * */ inst mp3d -nt "round floating" -io 2 -rb -mf1 ar rl 10 ida -mf2 ar rl 10 ida -mf3 ar rl 10 ida; desc1 -cn 1 -sd f; desc2 -cn 1 -sd f; desc3 -sd f; data 1 " +" (4) "0" (4) "3" 002; data 2 " +" (4) "0" (4) "9" 001; data 3 "+" (3) "3" "26667" 003; page -all; /* mp3d10 * all operands 9 bit floating * truncation will occur * */ inst mp3d -nt "truncation" -io 3 -ir tn -mf1 ar rl 10 -mf2 ar rl 10 -mf3 ar rl 10; desc1 -sd f; desc2 -sd f; desc3 -sd f; data 1 "+" (3) "0" (5) "3" 000; data 2 "+" (4) "0" (4) "9" 001; data 3 "+" (3) "3" "29666" 002; page -all; /* mp3d11 * set zero indicator, use three 9-bit operands * */ inst mp3d -nt"9sca*9sca->9sca" -ir zr -mf1 idb ar reg -mf2 idb ar reg -mf3 idb ar reg -io 1; desc 1 -sd f -nn 63; desc 2 -sd f -nn 63; desc 3 -sd f -nn 63; data 1 "+" (61)"0" 000 -do -62; data 2 "-" (61)"9" 034 -do -34; data 3 "+" (61)"0" 177; page -all; /* mp3d12 * set zero indicator, use three 9-bit leading sign operands * */ inst mp3d -nt"9sca*9sca->9sca" -ir zr -mf1 idb ar -mf2 idb ar -mf3 idb ar -io 2; desc 1 -sd l -sf 10 -nn 7; desc 2 -sd l -sf 10 -nn 28; desc3 -sd l -sf 10 -nn 28; data 1 -do -4 "-" (6)"4"; data 2 -do -24 "+" (27)"0"; data 3 "+" (27)"0"; page -all; /* mp3d13 * * set negative indicator, use three 4-bit floating operands * */ inst mp3d -nt "4float*4float->4float" -ir ng -mf1 idb ar -mf2 idb ar -mf3 idb ar -io 1; desc 1 -tn 4 -sd f -nn 6; desc 2 -tn 4 -sd f -nn 6; desc 3 -tn 4 -sd f -nn 6; data 1 260 061 004; data 2 320 050 004; data 3 330 150 010; page -all; /* mp3d14 * * set negative indicator, use three 4-bit leading sign operands * */ inst mp3d -nt "4sca*4sca->4sca" -ir ng -mf1 idb ar -mf2 idb ar -mf3 idb ar -io 2; desc 1 -tn 4 -sd l -sf 2 -nn 4; desc 2 -tn 4 -sd l -sf 2 -nn 6; desc 3 -tn 4 -sd l -sf 2 -nn 6; data 1 260 061; data 2 320 000 050; data 3 330 150 000; page -all; /* mp3d15 * * set truncation indicator, use three 4-bit floating operands * */ inst mp3d -nt "4float*4float->4float" -ir tn -mf1 idb ar -mf2 idb ar -mf3 idb ar -io 1; desc 1 -tn 4 -sd f -nn 6; desc 2 -tn 4 -sd f -nn 6; desc 3 -tn 4 -sd f -nn 6; data 1 266 130 012; data 2 260 022 013; data 3 307 211 026; page -all; /* mp3d16 * * set truncation indicator, use three 4-bit leading sign operands * */ inst mp3d -nt "4sca*4sca->4sca" -ir tn -mf1 idb ar -mf2 idb ar -mf3 idb ar -io 2; desc 1 -tn 4 -sd l -sf -1 -nn 2 -cn 1; desc 2 -tn 4 -sd l -sf 4 -nn 5 -cn 1; desc 3 -tn 4 -sd l -sf 4 -nn 5; data 1 00 271; data 2 00 261 043 10; data 3 301 021 00; page -all; /* mp3d17 * * test rounding, use three 4-bit trailing sign operands * */ inst mp3d -nt "4sca*4sca->4sca" -rb -mf1 idb ar -mf2 idb ar -mf3 idb ar -io 1; desc 1 -tn 4 -sd t -sf -1 -cn 1 -nn 2; desc 2 -tn 4 -sd t -sf 4 -nn 5; desc 3 -tn 4 -sd t -sf 4 -nn 5; data 1 -do -1 00 233; data 2 -do -2 022 064 30; data 3 021 021 30; page -all; /* mp3d18 * * set overflow indicator, use three 9-bit unsigned operands * */ inst mp3d -nt "9sca*9sca->9sca" -ir ov -mf1 idb ar reg -mf2 idb ar reg -mf3 idb ar reg -io 2; desc 1 -sd n -nn 3; desc 2 -sd n -nn 5; desc 3 -sd n -nn 5; data 1 -do -1 "999"; data 2 -do -4 "00999"; data 3 "98001"; page -all; /* mp3d19 * * set exponent overflow indicator, use three 9-bit floating operands * */ inst mp3d -nt "9flo*9flo->9flo" -ir eo tn -mf1 idb ar reg -mf2 idb ar reg -mf3 idb ar reg -io 1; desc 1 -sd f -nn 6; desc 2 -sd f -nn 6; desc 3 -sd f -nn 6; data 1 -do -4 "+" "0900" 100; data 2 -do -1 "+" "0756" 076; data 3 "+" "6804" 200; page -all; /* mp3d20 * * set exponent underflow indicator, use three 4-bit trailing * sign operands * */ inst mp3d -nt "4sca*4sca->4sca" -ir eu -mf1 idb ar -mf2 idb ar -mf3 idb ar -io 2; desc 1 -tn 4 -sd f -nn 6 -cn 1; desc 2 -tn 4 -sd f -nn 6 -cn 1; desc 3 -tn 4 -sd f -nn 6 -cn 1; data 1 -do -1 00 260 042 200; data 2 -do -2 00 260 063 300; data 3 00 307 046 100; page -all; /* mp3d21 * * mix leading and traling signs with 4-bit operands * */ inst mp3d -nt "4sca*4sca->4sca" -mf1 idb ar -mf2 idb ar -mf3 idb ar -io 1; desc 1 -tn 4 -sd l -nn 63; desc 2 -tn 4 -sd t -sf 3 -nn 63; desc 3 -tn 4 -sd t -sf 3 -nn 63; data 1 -do -62 260 (30)000 22; data 2 -do -1 010 (30)210 26; data 3 171 (29)231 222 30; page -all; /* mp3d22 * * mix floating point and leading sign with 9-bit operands * */ inst mp3d -nt "9flo*9sca->9sca" -mf1 idb ar reg -mf2 idb ar reg -mf3 idb ar reg -io 2; desc 1 -sd f -nn 5; desc 2 -sd l -sf -3 -nn 63; desc 3 -sd l -sf -3 -nn 63; data 1 -do -4 "+" "009" 001; data 2 -do -17 "+" "00" (60)"8"; data 3 "+" "7" (59)"9" "20"; page -all; /* mp3d23 * * mix 9-bit and 4-bit operands, use leading sign and unsigned scaled * decimals * */ inst mp3d -nt "9sca*4sca->4sca" -mf1 idb ar reg -mf2 idb ar -mf3 idb ar -io 1; desc 1 -sd l -sf 2 -nn 11; desc 2 -sd n -sf 2 -nn 15 -tn 4; desc 3 -sd n -sf 2 -nn 15 -tn 4; data 1 -do -7 "+" "2271658432"; data 2 -do -1 (6)000 124 04; data 3 022 061 043 210 160 024 100 000; page -all; /* mp3d24 * * mix 4-bit and 9-bit unsigned operands * */ inst mp3d -nt "4sca*9sca->9sca" -mf1 idb ar -mf2 idb ar reg -mf3 idb ar reg -io 2; desc 1 -sd n -tn 4 -sf 2 -nn 10; desc 2 -sd n -sf 2 -nn 15; desc 3 -sd n -sf 2 -nn 15; data 1 -do -1 042 161 145 204 142; data 2 -do -13 (12)"0" "542"; data 3 "123123888640400"; page -all; /* mp3d25 * * mix floating point and trailing sign 9-bit operands * */ inst mp3d -nt "9-bit f -> 4 bit trailing sign" -ir ng -mf1 idb ar reg -mf2 idb ar reg -mf3 idb ar reg -io 1; desc 1 -sd f -nn 16; desc 2 -sd t -sf 4 -nn 16; desc 3 -sd t -sf 4 -nn 16; data 1 -do -5 "+" "0000" "2271658432" 002; data 2 -do -6 (12)"0" "542" "-"; data 3 "123123887014400" "-"; page -all; /* mp3d26 * * Multiply 505.05+ by floating +2.2 and get the 4 bit number * +1111.11000 */ inst mp3d -nt "Result is 4 bit num" -io 3 -mf1 ida -mf2 reg ar idb -mf3 ar idb; desc 1 -nn 6 -sd t -sf -2 -cn 1; data 1 -do -4 " " "505" "05" 053; desc 2 -nn 4 -sd f -cn 2; data 2 -do -3 " " 053 "22" 377; /* Exponent = -1 */ desc 3 -nn 10 -sd l -tn 4 -sf -5; data 3 301 021 021 020 000; page -all; /* mp3d27 * 9 bit scaled * 9 bit scaled to * 9 bit scaled * all page faults taken * */ inst mp3d -nt "rounded result" -io 2 -rb -mf1 ar rl 63 idb reg -mf2 ar rl 63 idb reg -mf3 ar rl 63 idb reg; desc1 -cn 1 -sd l ; desc2 -cn 1 -sd l ; desc3 -sd l -cn 1 ; data 1 -do 4033 " +" (20) "0" (12) "111" "111111"; data 2 -do 4033 " +" (53) "0" (9) "1"; data 3 -do 4033 000 "+" (12) "0" "12345678" (34) "9" "87654321"; page -all; /* mp2d1 * The zero indicator is set. * Two 9-bit operands are used. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst mp2d -nt "9-bit x 9-bit -> 9-bit" -ir zr -mf1 idb ar reg -mf2 idb ar reg -io 1; desc 1 -sd f -nn 63; desc 2 -sd f -nn 63; data 1 "+" (61)"0" 000 -do -62; data 2 "-" (61)"9" 034 -do -34; data 3 "+" (61)"0" 177; page -all; /* mp2d2 * The zero indicator is set. * Two 9-bit leading sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst mp2d -nt "9-bit x 9-bit -> 9-bit" -ir zr -mf1 idb ar -mf2 idb ar -io 2; desc 1 -sd l -sf 10 -nn 7; desc 2 -sd l -sf 10 -nn 28; data 1 -do -4 "-" (6)"4"; data 2 -do -24 "+" (27)"0"; data 3 "+" (27)"0"; page -all; /* mp2d3 * The negative indicator is set. * Two 4-bit floating point operands are used. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst mp2d -nt "4-bit x 4-bit -> 4-bit" -ir ng -mf1 idb ar -mf2 idb ar -io 1; desc 1 -tn 4 -sd f -nn 6; desc 2 -tn 4 -sd f -nn 6; data 1 260 061 004; data 2 320 050 004; data 3 330 150 010; page -all; /* mp2d4 * The negative indicator is set. * Two 4-bit leading sign operands are used. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst mp2d -nt "4-bit x 4-bit -> 4-bit" -ir ng -mf1 idb ar -mf2 idb ar -io 2; desc 1 -tn 4 -sd l -sf 2 -nn 4; desc 2 -tn 4 -sd l -sf 2 -nn 6; data 1 260 061; data 2 320 000 050; data 3 330 150 000; page -all; /* mp2d5 * The truncation indicator is set. * Two 4-bit floating point operands are used. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst mp2d -nt "4-bit x 4-bit -> 4-bit" -ir tn -mf1 idb ar -mf2 idb ar -io 1; desc 1 -tn 4 -sd f -nn 6; desc 2 -tn 4 -sd f -nn 6; data 1 266 130 012; data 2 260 022 013; data 3 307 211 026; page -all; /* mp2d6 * The truncation indicator is set. * Two 4-bit leading sign operands are used. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst mp2d -nt "4-bit x 4-bit -> 4-bit" -ir tn -mf1 idb ar -mf2 idb ar -io 2; desc 1 -tn 4 -sd l -sf -1 -nn 2 -cn 1; desc 2 -tn 4 -sd l -sf 4 -nn 5 -cn 1; data 1 00 271; data 2 00 261 043 10; data 3 00 301 021 00; page -all; /* mp2d7 * Rounding is tested. * Two 4-bit trailing sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst mp2d -nt "4-bit x 4-bit -> 4-bit" -rb -mf1 idb ar -mf2 idb ar -io 1; desc 1 -tn 4 -sd t -sf -1 -cn 1 -nn 2; desc 2 -tn 4 -sd t -sf 4 -nn 5; data 1 -do -1 00 233; data 2 -do -2 022 064 30; data 3 021 021 30; page -all; /* mp2d8 * The overflow indicator is set. * Two 9-bit unsigned operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst mp2d -nt "9-bit x 9-bit -> 9-bit" -ir ov -mf1 idb ar reg -mf2 idb ar reg -io 2; desc 1 -sd n -nn 3; desc 2 -sd n -nn 5; data 1 -do -1 "999"; data 2 -do -4 "00999"; data 3 "98001"; page -all; /* mp2d9 * The exponent overflow indicator is set. * Two 9-bit floating point operands * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst mp2d -nt "9-bit x 9-bit -> 9-bit" -ir eo tn -mf1 idb ar reg -mf2 idb ar reg -io 1; desc 1 -sd f -nn 6; desc 2 -sd f -nn 6; data 1 -do -4 "+" "0900" 100; data 2 -do -1 "+" "0756" 076; data 3 "+" "6804" 200; page -all; /* mp2d10 * The exponent underflow indicator is set. * Two 4-bit trailing sign operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst mp2d -nt "4-bit x 4-bit -> 4-bit" -ir eu -mf1 idb ar -mf2 idb ar -io 2; desc 1 -tn 4 -sd f -nn 6 -cn 1; desc 2 -tn 4 -sd f -nn 6 -cn 1; data 1 -do -1 00 260 042 200; data 2 -do -2 00 260 063 300; data 3 00 307 046 100; page -all; /* mp2d11 * Leading and trailing signs are mixed. * Two 4-bit operands are used. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst mp2d -nt "4-bit x 4-bit -> 4-bit" -mf1 idb ar -mf2 idb ar -io 1; desc 1 -tn 4 -sd l -nn 63; desc 2 -tn 4 -sd t -sf 3 -nn 63; data 1 -do -62 260 (30)000 22; data 2 -do -1 010 (30)210 26; data 3 171 (29)231 222 30; page -all; /* mp2d12 * A floating point operand and a leading sign operand are used. * Two 9-bit operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst mp2d -nt "4-bit x 4-bit -> 4-bit" -mf1 idb ar reg -mf2 idb ar reg -io 2; desc 1 -sd f -nn 5; desc 2 -sd l -sf -3 -nn 63; data 1 -do -4 "+" "009" 001; data 2 -do -17 "+" "00" (60)"8"; data 3 "+" "7" (59)"9" "20"; page -all; /* mp2d13 * A leading sign 9-bit operand and an unsigned 4-bit operand are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst mp2d -nt "9-bit x 4-bit -> 4-bit" -mf1 idb ar reg -mf2 idb ar -io 1; desc 1 -sd l -sf 2 -nn 11; desc 2 -sd n -sf 2 -nn 15 -tn 4; data 1 -do -7 "+" "2271658432"; data 2 -do -1 (6)000 124 04; data 3 022 061 043 210 160 024 100 000; page -all; /* mp2d14 * Unsigned 4-bit and 9-bit operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst mp2d -nt "4-bit x 9-bit -> 9-bit" -mf1 idb ar -mf2 idb ar reg -io 2; desc 1 -sd n -tn 4 -sf 2 -nn 10; desc 2 -sd n -sf 2 -nn 15; data 1 -do -1 042 161 145 204 142; data 2 -do -13 (12)"0" "542"; data 3 "123123888640400"; page -all; /* mp2d15 * A floating point operand and a trailing sign operand are used. * Two 9-bit operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst mp2d -nt "9-bit x 9-bit -> 9-bit" -ir ng -mf1 idb ar reg -mf2 idb ar reg -io 1; desc 1 -sd f -nn 16; desc 2 -sd t -sf 4 -nn 16; data 1 -do -5 "+" "0000" "2271658432" 002; data 2 -do -6 (12)"0" "542" "-"; data 3 "123123887014400" "-"; page -all; /* dv3d1 * The zero indicator is set. * Three 9-bit floating point operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst dv3d -nt "(9 bit / 9 bit) -> 9 bit" -ir zr -mf1 idb ar reg -mf2 idb ar reg -mf3 idb ar reg -io 1; desc 1 -sd f -nn 6; desc 2 -sd f -nn 55; desc 3 -sd f -nn 31; data 1 -do -2 "+" "4275" 377; data 2 -do -50 "+" (53)"0" 374; data 3 -do -25 "+" (29)"0" 177; page -all; /* dv3d2 * The negative indicator is set. * Three 4-bit floating point operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst dv3d -nt "(4 bit / 4 bit) -> 4 bit" -ir ng -mf1 idb ar -mf2 idb ar -mf3 idb ar -io 2; desc 1 -tn 4 -sd f -nn 8 -cn 1; desc 2 -tn 4 -sd f -nn 8 -cn 1; desc 3 -tn 4 -sd f -nn 8 -cn 1; data 1 -do -1 00 260 000 002 004; data 2 -do -4 00 320 225 120 004; data 3 -do -2 00 324 167 120 377; page -all; /* dv3d3 * The negative indicator is set. * Three 4-bit trailing sign operands are used. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst dv3d -nt "(4 bit / 4 bit) -> 4 bit" -ir ng -mf1 idb ar -mf2 idb ar -mf3 idb ar -io 3; desc 1 -tn 4 -sd t -sf 4 -nn 4; desc 2 -tn 4 -sd t -sf 8 -nn 3; desc 3 -tn 4 -sd t -sf 3 -nn3; data 1 000 055; data 2 010 26; data 3 100 32; page -all; /* dv3d4 * The overflow indicator is set. * Three 4-bit floating point operands are used. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst dv3d -nt "(4 bit / 4 bit) -> 4 bit" -ir ov -mf1 idb ar -mf2 idb ar -mf3 idb ar -io 1; desc 1 -tn 4 -sd n -sf 1 -nn 63; desc 2 -tn 4 -sd n -sf 1 -nn63; desc 3 -tn 4 -sd n -sf 10 -nn 50; data 1 -do -12 (31)000 10; data 2 -do -15 (31)167 16; data 3 -do -18 (25)104; page -all; /* dv3d5 * A 9-bit operand is divided by a 9-bit operand & stored in a 4-bit operand. * All operands are unsigned. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst dv3d -nt "(9 bit / 9 bit) -> 4 bit" -mf1 idb ar reg -mf2 idb ar reg -mf3 idb ar -io 1; desc 1 -sd n -nn 8; desc 2 -sd n -nn 10; desc 3 -sd n -tn 4 -nn 8; data 1 -do -7 "30144196"; data 2 -do -3 "1567498217"; data 3 -do -2 (3)000 122; page -all; /* dv3d6 * A 4-bit operand is divided by a 4-bit operand & stored in a 9-bit operand. * All operands are floating point. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst dv3d -nt "(4 bit / 4 bit) -> 9 bit" -mf1 idb ar -mf2 idb ar -mf3 idb ar reg -io 2; desc 1 -tn 4 -sd f -nn 11; desc 2 -tn 4 -sd f -nn 13; desc 3 -sd f -nn 10; data 1 -do -4 323 001 104 031 140 00; data 2 -do -3 321 126 164 230 041 160 00; data 3 -do -1 "+" "052" (5)"0" 373; page -all; /* dv3d7 * A 9-bit operand is divided by a 4-bit operand & stored in a 4-bit operand. * All operands are trailing sign. * The maximum number of page faults is taken. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst dv3d -nt "(9 bit / 4 bit) -> 4 bit" -mf1 idb ar reg -mf2 idb ar -mf3 idb ar -io 3; desc 1 -sd t -nn 10; desc 2 -tn 4 -sd t -nn 11; desc 3 -tn 4 -sd t -nn 10; data 1 -do -8 "030144196" "-"; data 2 -do -5 025 147 111 202 027 320; data 3 -do -3 (3)000 005 054; page -all; /* dv3d8 * A 9-bit operand is divided by a 4-bit operand & stored in a 9-bit operand. * All operands are leading sign. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst dv3d -nt "(9 bit / 4 bit) -> 9 bit" -mf1 idb ar reg -mf2 idb ar -mf3 idb ar reg -io 2; desc 1 -sd l -sf 6 -nn 20; desc 2 -sd l -sf 6 -tn 4 -nn 20; desc 3 -sd l -nn 20; data 1 "+" (11)"0" "30144196"; data 2 260 (4) 000 025 147 111 202 027; data 3 "+" (17)"0" "52"; page -all; /* dv3d9 * Leading sign, trailing sign, and floating point operands are used. * Three 9-bit operands are used. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst dv3d -nt "(9 bit / 9 bit) -> 9 bit" -mf1 idb ar reg -mf2 idb ar reg -mf3 idb ar reg -io 3; desc 1 -sd l -sf 1 -nn 8; desc 2 -sd t -sf 2 -nn 8; desc 3 -sd f -nn 8; data 1 "+" (5)"0" "58"; data 2 "000" "1234" "+"; data 3 "+" "021275" 376; page -all; /* dv3d10 * Floating point, unsigned, and leading sign operands are used. * Three 4-bit operands are used. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst dv3d -nt "(4 bit / 4 bit -> 4 bit" -mf1 idb ar -mf2 idb ar -mf3 idb ar -io 1; desc 1 -tn 4 -sd f -nn 8; desc 2 -tn 4 -sd n -sf 1 -nn 8; desc 3 -tn 4 -sd l -nn 8; data 1 260 002 022 000; data 2 000 000 022 064; data 3 300 000 000 130; page -all; /* dv3d11 * Use RL mod and cn field with indirect descriptors * Use three 9-bit trailing sign operands. * */ inst dv3d -nt "two character offset" -io 2 -ir ng -mf1 ar rl 10 idb reg -mf2 ar rl 10 idb reg -mf3 ar rl 10 idb reg; desc1 -cn 1 -sd t ; desc2 -cn 1 -sd t ; desc 3 -cn 1 -sd t; data 1 -do -9 " " (9) "1" "-"; data 2 -do -9 "*" (9) "2" "+"; data 3 000 (8)"0" "2" "-"; page -all; /* dv3d12 * Use RL mod and cn field with indirect descriptors * Use three 9-bit trailing sign operands. * */ inst dv3d -nt "one character offset" -io 2 -ir ng -mf1 ar rl 10 idb reg -mf2 ar rl 10 idb reg -mf3 ar rl 10 idb reg; desc1 -cn 1 -sd t ; desc2 -cn 1 -sd t ; desc3 -cn 1 -sd t; data 1 -do -10 " " (9) "1" "-"; data 2 -do -20 "*" (9) "2" "+"; data 3 000 (8) "0" "2" "-"; page -all; /* dv3d13 * Use RL mod and cn field * Use three 9-bit trailing sign operands. * no indirect descriptors * */ inst dv3d -nt "no indirect descriptors" -io 2 -ir ng -mf1 ar rl 10 reg -mf2 ar rl 10 reg -mf3 ar rl 10 reg; desc1 -cn 1 -sd t ; desc2 -cn 1 -sd t ; desc3 -cn 1 -sd t; data 1 -do -9 " " (9) "1" "-"; data 2 -do -9 "*" (9) "2" "+"; data 3 000 (8) "0" "2" "-"; page -all; /* dv3d14 * Use no modification * Use three 9 bit trailing sign operands. * */ inst dv3d -nt "no mf modification" -io 2 -ir ng; desc1 -cn 1 -sd t -nn 12; desc2 -cn 1 -sd t -nn 12; desc3 -cn 1 -sd t -nn 12; data 1 -do -12 " " (11) "1" "-"; data 2 -do -12 "*" (11) "2" "+"; data 3 000 (10) "0" "2" "-"; page -all; /* dv3d15 * Use ar and rl * Use three 9-bit trailing sign operands. * */ inst dv3d -nt "ar and rl modification" -io 2 -ir ng -mf1 ar rl 10 -mf2 ar rl 10 -mf3 ar rl 10 ; desc1 -cn 1 -sd t ; desc2 -cn 1 -sd t ; desc3 -cn 1 -sd t; data 1 -do -9 " " (9) "1" "-"; data 2 -do -9 "*" (9) "2" "+"; data 3 000 (8)"0" "2" "-"; page -all; /* dv3d16 * Use ar and rl modification on desc1 * Use ar rl idb reg on desc2 * Use three 9-bit trailing sign operands. * */ inst dv3d -nt "two character offset" -io 2 -ir ng -mf1 ar rl 10 -mf2 ar rl 10 idb reg -mf3 ar rl 10 idb reg; desc1 -cn 1 -sd t ; desc2 -cn 1 -sd t ; desc3 -cn 1 -sd t; data 1 -do -9 " " (9) "1" "-"; data 2 -do -9 "*" (9) "2" "+"; data 3 000 (8) "0" "2" "-"; page -all; /* dv3d17 * maximum length divide leading sign * one character over next page * all modification taken */ inst dv3d -nt "maximum length " -io 2 -mf1 ar rl 63 idb reg -mf2 ar rl 63 idb reg -mf3 ar rl 63 idb reg; desc1 -cn 1 -sd l ; desc2 -cn 1 -sd l ; desc3 -cn 1 -sd l; data 1 -do 4033 " " "+33" (15) "8642"; data 2 -do 4033 "*" "+33" (15) "8642"; data 3 000 "+" (61) "0" "1"; page -all; /* dv3d18 * This is a simple test * Use three 9-bit trailing sign operands. * */ inst dv3d -nt "simple test"; desc1 -sd t -nn 63; desc2 -sd t -sf 10 -nn 63; desc3 -sd t -sf 10 -nn 63; data 1 "11" (12) "1111" "11" (10) "0" "+"; data 2 "22" (12) "2222" "22" (10) "0" "+"; data 3 (61) "0" "2" "+"; page -all; /* dv3d19 * maximum length divide resulting * in an overflow * all modification taken * Use three 9-bit leading sign operands. */ inst dv3d -nt "truncation fault" -io 1 -mf1 ar rl 63 idb reg -mf2 ar rl 63 idb reg -mf3 ar rl 63 idb reg; desc1 -sd l -cn 1; desc2 -sd l -cn 1; desc3 -sd l -cn 1; data 1 -do 4033 " " "+33" (15) "8642"; data 2 -do 4033 "*" "+71" (15) "2357"; data 3 000 "+" (61) "0" "2"; page -all; /* dv3d20 * maximum length over two pages * no faults, (9 bit / 4 bit) -> 4 bit * */ inst dv3d -nt "(9 bit / 4 bit) -> 4 bit" -io 1 -mf1 ar rl 63 -mf2 ar rl 63 -mf3 ar rl 63 ; desc1 -sd t ; desc2 -sd t -tn 4; desc3 -sd t -tn 4; data 1 -do 4033 "33" (15) "3333" "+"; data 2 -do 4064 104104 (7) 104104104104 10426; data 3 (28) 000 000000001300; page -all; /* dv3d21 * (9 bit / 4 bit) -> 4 bit ; all page faults possible * no reg modification on desc2 * */ inst dv3d -nt "(9 bit / 4 bit) -> 4 bit" -io 2 -mf1 ar rl 63 idb reg -mf2 ar rl 63 idb -mf3 ar rl 63 idb ; desc1 -cn 1 -sd l; desc2 -cn 1 -sd t -tn 4; desc3 -cn 1 -sd t -tn 4; data 1 -do 4033 " " "+" (15) "0000" "22"; data 2 -do 4068 "*" (28) 000 104104 1043; data 3 000 (28) 000 002 002 002 300; page -all; /* dv3d22 * Use three 4-bit trailing sign operands. * maximum length * all page faults taken * no reg modification */ inst dv3d -nt "(4 bit / 4 bit) -> 4 bit" -io 1 -mf1 ar rl 63 idb -mf2 ar rl 63 idb -mf3 ar rl 63 idb; desc1 -cn 1 -sd t -tn 4; desc2 -cn 1 -sd t -tn 4; desc3 -cn 1 -sd t -tn 4; data 1 -do 4065 " " (28) 000 000 000 0013; data 2 -do 4065 "*" 021021 (7) 021021021021 0213; data 3 000 021021 (7) 021021021021 0213; page -all; /* dv3d23 * floating point divide * Use three 9-bit floatinf point operands. * all page faults taken * */ inst dv3d -nt "9bit float divide" -io 1 -mf1 ar rl 63 reg idb -mf2 ar rl 63 reg idb -mf3 ar rl 63 reg idb; desc1 -sd f; desc2 -sd f; desc3 -sd f; data 1 -do -1 "+" (20) "0" (10) "1" (30) "0" "1" 005; data 2 -do -1 "+" (20) "0" (10) "1" (30) "0" "1" 006; data 3 "+" "1" (60) "0" 305; page -all; /* dv3d24 * Use three 4-bit floating point operands. * */ inst dv3d -nt "(4 bit / 4 bit) -> 4 bit" -io 1 -mf1 ar rl 10 ida -mf2 ar rl 10 ida -mf3 ar rl 10 ida; desc1 -sd f -tn 4; desc2 -sd f -tn 4; desc3 -sd f -tn 4; data 1 -do -1 300 000 000 001 000; data 2 -do -1 300 000 021 021 000; data 3 301 021 020 000 375; page -all; /* dv3d25 * (4 bit / 9 bit) -> 9 bit * */ inst dv3d -nt "(4 bit / 9 bit) -> 9 bit" -io 1 -mf1 ar rl 5 idb -mf2 ar rl 5 idb reg -mf3 ar rl 5 idb reg; desc 1 -tn 4 -sd l; desc 2 -sd n; desc 3 -sd n; data 1 30102100; data 2 -do 4 "02222"; data 3 "00002"; page -all; /* dv3d26 * The zero indicator is set. * Three 9-bit floating point operands are used. * No indirect descriptors are used. * Address register modification is used for all operands. */ inst dv3d -nt "(9 bit / 9 bit) -> 9 bit" -ir zr -mf1 ar reg -mf2 ar reg -mf3 ar reg -io 1; desc 1 -sd f -nn 6; desc 2 -sd f -nn 55; desc 3 -sd f -nn 31; data 1 -do -2 "+" "4275" 377; data 2 -do -50 "+" (53)"0" 374; data 3 -do -25 "+" (29)"0" 177; page -all; /* dv3d27 * The negative indicator is set. * Three 4-bit floating point operands are used. * No indirect descriptors are used. * Address register modification is used for all operands. */ inst dv3d -nt "(4 bit / 4 bit) -> 4 bit" -ir ng -mf1 ar -mf2 ar -mf3 ar -io 2; desc 1 -tn 4 -sd f -nn 8 -cn 1; desc 2 -tn 4 -sd f -nn 8 -cn 1; desc 3 -tn 4 -sd f -nn 8 -cn 1; data 1 -do -1 00 260 000 002 004; data 2 -do -4 00 320 225 120 004; data 3 -do -2 00 324 167 120 377; page -all; /* dv3d28 * The negative indicator is set. * Three 4-bit trailing sign operands are used. * No indirect descriptors are used. * Address register modification is used for all operands. */ inst dv3d -nt "(4 bit / 4 bit) -> 4 bit" -ir ng -mf1 ar -mf2 ar -mf3 ar -io 3; desc 1 -tn 4 -sd t -sf 4 -nn 4; desc 2 -tn 4 -sd t -sf 8 -nn 3; desc 3 -tn 4 -sd t -sf 3 -nn3; data 1 000 055; data 2 010 26; data 3 100 32; page -all; /* dv3d29 * The overflow indicator is set. * Three 4-bit floating point operands are used. * No indirect descriptors are used. * Address register modification is used for all operands. */ inst dv3d -nt "(4 bit / 4 bit) -> 4 bit" -ir ov -mf1 ar -mf2 ar -mf3 ar -io 1; desc 1 -tn 4 -sd n -sf 1 -nn 63; desc 2 -tn 4 -sd n -sf 1 -nn63; desc 3 -tn 4 -sd n -sf 10 -nn 50; data 1 -do -12 (31)000 10; data 2 -do -15 (31)167 16; data 3 -do -18 (25)104; page -all; /* dv3d30 * A 9-bit operand is divided by a 9-bit operand & stored in a 4-bit operand. * All operands are unsigned. * No indirect descriptors are used. * Address register modification is used for all operands. */ inst dv3d -nt "(9 bit / 9 bit) -> 4 bit" -mf1 ar reg -mf2 ar reg -mf3 ar -io 1; desc 1 -sd n -nn 8; desc 2 -sd n -nn 10; desc 3 -sd n -tn 4 -nn 8; data 1 -do -7 "30144196"; data 2 -do -3 "1567498217"; data 3 -do -2 (3)000 122; page -all; /* dv3d31 * A 4-bit operand is divided by a 4-bit operand & stored in a 9-bit operand. * All operands are floating point. * No indirect descriptors are used. * Address register modification is used for all operands. */ inst dv3d -nt "(4 bit / 4 bit) -> 9 bit" -mf1 ar -mf2 ar -mf3 ar reg -io 2; desc 1 -tn 4 -sd f -nn 11; desc 2 -tn 4 -sd f -nn 13; desc 3 -sd f -nn 10; data 1 -do -4 323 001 104 031 140 00; data 2 -do -3 321 126 164 230 041 160 00; data 3 -do -1 "+" "052" (5)"0" 373; page -all; /* dv3d32 * A 9-bit operand is divided by a 4-bit operand & stored in a 4-bit operand. * All operands are trailing sign. * No indirect descriptors are used. * Address register modification is used for all operands. */ inst dv3d -nt "(9 bit / 4 bit) -> 4 bit" -mf1 ar reg -mf2 ar -mf3 ar -io 3; desc 1 -sd t -nn 10; desc 2 -tn 4 -sd t -nn 11; desc 3 -tn 4 -sd t -nn 10; data 1 -do -8 "030144196" "-"; data 2 -do -5 025 147 111 202 027 320; data 3 -do -3 (3)000 005 054; page -all; /* dv3d33 * A 9-bit operand is divided by a 4-bit operand & stored in a 9-bit operand. * All operands are leading sign. * No indirect descriptors are used. * Address register modification is used for all operands. */ inst dv3d -nt "(9 bit / 4 bit) -> 9 bit" -mf1 ar reg -mf2 ar -mf3 ar reg -io 2; desc 1 -sd l -sf 6 -nn 20; desc 2 -sd l -sf 6 -tn 4 -nn 20; desc 3 -sd l -nn 20; data 1 "+" (11)"0" "30144196"; data 2 260 (4) 000 025 147 111 202 027; data 3 "+" (17)"0" "52"; page -all; /* dv3d34 * Leading sign, trailing sign, and floating point operands are used. * Three 9-bit operands are used. * No indirect descriptors are used. * Address register modification is used for all operands. */ inst dv3d -nt "(9 bit / 9 bit) -> 9 bit" -mf1 ar reg -mf2 ar reg -mf3 ar reg -io 3; desc 1 -sd l -sf 1 -nn 8; desc 2 -sd t -sf 2 -nn 8; desc 3 -sd f -nn 8; data 1 "+" (5)"0" "58"; data 2 "000" "1234" "+"; data 3 "+" "021275" 376; page -all; /* dv3d35 * Floating point, unsigned, and leading sign operands are used. * Three 4-bit operands are used. * Indirect descriptors are used for all operands. * Address register modification is used for all operands. */ inst dv3d -nt "(4 bit / 4 bit -> 4 bit" -mf1 ar -mf2 ar -mf3 ar -io 1; desc 1 -tn 4 -sd f -nn 8; desc 2 -tn 4 -sd n -sf 1 -nn 8; desc 3 -tn 4 -sd l -nn 8; data 1 260 002 022 000; data 2 000 000 022 064; data 3 300 000 000 130; page -all; /* dv2d1 * Use RL mod and cn field with indirect descriptors * divide 9 bit scaled to 9 bit scaled * */ inst dv2d -nt "two character offset" -io 2 -ir ng -mf1 ar rl 10 idb reg -mf2 ar rl 10 idb reg; desc1 -cn 1 -sd t ; desc2 -cn 1 -sd t ; data 1 -do -9 " " (9) "1" "-"; data 2 -do -9 "*" (9) "2" "+"; data 3 "*" (8) "0" "2" "-"; page -all; /* dv2d2 * Use RL mod and cn field with indirect descriptors * 9 bit scaled to 9 bit scaled * */ inst dv2d -nt "one character offset" -io 2 -ir ng -mf1 ar rl 10 idb reg -mf2 ar rl 10 idb reg; desc1 -cn 1 -sd t ; desc2 -cn 1 -sd t ; data 1 -do -10 " " (9) "1" "-"; data 2 -do -20 "*" (9) "2" "+"; data 3 "*" (8) "0" "2" "-"; page -all; /* dv2d3 * Use RL mod and cn field * 9 bit scaled to 9 bit scaled * no indirect descriptors * */ inst dv2d -nt "no indirect descriptors" -io 2 -ir ng -mf1 ar rl 10 reg -mf2 ar rl 10 reg; desc1 -cn 1 -sd t ; desc2 -cn 1 -sd t ; data 1 -do -9 " " (9) "1" "-"; data 2 -do -9 "*" (9) "2" "+"; data 3 "*" (8) "0" "2" "-"; page -all; /* dv2d4 * Use no modification * 9bit scaled divideed to 9 bit scaled * */ inst dv2d -nt "no mf modification" -io 2 -ir ng; desc1 -cn 1 -sd t -nn 12; desc2 -cn 1 -sd t -nn 12; data 1 -do -12 " " (11) "1" "-"; data 2 -do -12 "*" (11) "2" "+"; data 3 "*" (10) "0" "2" "-"; page -all; /* dv2d5 * Use ar and rl * 9 bit scaled to 9 bit scaled * */ inst dv2d -nt "ar and rl modification" -io 2 -ir ng -mf1 ar rl 10 -mf2 ar rl 10 ; desc1 -cn 1 -sd t ; desc2 -cn 1 -sd t ; data 1 -do -9 " " (9) "1" "-"; data 2 -do -9 "*" (9) "2" "+"; data 3 "*" (8)"0" "2" "-"; page -all; /* dv2d6 * Use aar and rl modification, desc1 * Use ar rl idb reg on desc2 * 9 bit scaled to 9 bit scaled * */ inst dv2d -nt "two character offset" -io 2 -ir ng -mf1 ar rl 10 -mf2 ar rl 10 idb reg; desc1 -cn 1 -sd t ; desc2 -cn 1 -sd t ; data 1 -do -9 " " (9) "1" "-"; data 2 -do -9 "*" (9) "2" "+"; data 3 "*" (8) "0" "2" "-"; page -all; /* dv2d7 * maximum length divide leading sign * one character over next page * all modification taken */ inst dv2d -nt "maximum length " -io 2 -mf1 ar rl 63 idb reg -mf2 ar rl 63 idb reg; desc1 -cn 1 -sd l ; desc2 -cn 1 -sd l ; data 1 -do 4033 " " "+33" (15) "8642"; data 2 -do 4033 "*" "+33" (15) "8642"; data 3 "*" "+" (61) "0" "1"; page -all; /* dv2d8 * This is a simple test * 9 bit divide to 9 bit all scaled trailing sign * */ inst dv2d -nt "simple test"; desc1 -sd t -nn 63; desc2 -sd t -sf 10 -nn 63; data 1 "11" (12) "1111" "11" (10) "0" "+"; data 2 "22" (12) "2222" "22" (10) "0" "+"; data 3 (61) "0" "2" "+"; page -all; /* dv2d9 * maximum length divide resulting * in an overflow * all modification taken * 9 bit scaled to 9 bit scaled */ inst dv2d -nt "truncation fault" -io 1 -mf1 ar rl 63 idb reg -mf2 ar rl 63 idb reg; desc1 -sd l -cn 1; desc2 -sd l -cn 1; data 1 -do 4033 " " "+33" (15) "8642"; data 2 -do 4033 "*" "+71" (15) "2357"; data 3 "*" "+" (61) "0" "2"; page -all; /* dv2d10 * maximum length over two pages * no faults, 9 bit to 4 bit * */ inst dv2d -nt "9 bit -> 4 bit" -io 1 -mf1 ar rl 63 -mf2 ar rl 63 ; desc1 -sd t ; desc2 -sd t -tn 4; data 1 -do 4033 "33" (15) "3333" "+"; data 2 -do 4064 104104 (7) 104104104104 10426; data 3 (28) 000 000000001300; page -all; /* dv2d11 * 9 bit to 4 bit all page faults possible * no reg modification on desc2 * */ inst dv2d -nt "9bit ->4bit" -io 2 -mf1 ar rl 63 idb reg -mf2 ar rl 63 idb ; desc1 -cn 1 -sd l; desc2 -cn 1 -sd t -tn 4; data 1 -do 4033 " " "+" (15) "0000" "22"; data 2 -do 4068 "*" (28) 000 104104 1043; data 3 "*" (28) 000 002 002 002 300; page -all; /* dv2d12 * 4 bit divideed to 4 bit * maximum length * all page faults taken * no reg modification */ inst dv2d -nt "4 bit + 4bit" -io 1 -mf1 ar rl 63 idb -mf2 ar rl 63 idb; desc1 -cn 1 -sd t -tn 4; desc2 -cn 1 -sd t -tn 4; data 1 -do 4065 " " (28) 000 000 000 0013; data 2 -do 4065 "*" 021021 (7) 021021021021 0213; data 3 "*" 021021 (7) 021021021021 0213; page -all; /* dv2d13 * floating point divide * 9 bit to 9bit * all page faults taken * */ inst dv2d -nt "9bit float divide" -io 1 -mf1 ar rl 63 reg idb -mf2 ar rl 63 reg idb; desc1 -sd f; desc2 -sd f; data 1 -do -1 "+" (20) "0" (10) "1" (30) "0" "1" 005; data 2 -do -1 "+" (20) "0" (10) "1" (30) "0" "1" 006; data 3 "+" "1" (60) "0" 305; page -all; /* dv2d14 * 4 bit floating divided to * 4 bit floating * */ inst dv2d -nt "4 float to 4 float" -io 1 -mf1 ar rl 10 ida -mf2 ar rl 10 ida; desc1 -sd f -tn 4; desc2 -sd f -tn 4; data 1 -do -1 300 000 000 001 000; data 2 -do -1 300 000 021 021 000; data 3 301 021 020 000 375; page -all; /* dv2d15 * test 4bit scaled to 9 bit * */ inst dv2d -nt "4bit->9bit" -io 1 -mf1 ar rl 5 idb -mf2 ar rl 5 idb reg; desc 1 -tn 4 -sd l; desc 2 -sd n; data 1 30102100; data 2 -do 4 "02222"; data 3 "00002"; page -all; /* dv2d16 * test 9 floating to 4 floating * */ inst dv2d -nt "9float->4 float" -io 1 -mf1 ar rl 5 idb reg -mf2 ar rl 7 idb; desc 1 -sd f; desc 2 -sd f -tn 4; data 1 "+" (3) "1" 000; data 2 300 042 040 00; data 3 302 000 017 320; page -all; /* dv2d17 * 4 float to 9 float * */ inst dv2d -nt "4float -> 9float" -io 1 -mf1 ar rl 7 idb -mf2 ar rl 7 idb reg; desc 1 -sd f -tn 4 ; desc 2 -sd f; data 1 300 042 040 00; data 2 "+0" (3) "1" "0" 000; data 3 "+05000" 375; page -all; /* dv2d18 * 9 scaled to 9 float * */ inst dv2d -nt "9sacled to 9 float" -io 2 -mf1 ar rl 5 idb reg -mf2 ar rl 6 idb reg; desc1 -sd l; desc2 -sd f; data 1 "+" (4) "3"; data 2 "+" "0" (3) "2" 000; data 3 "+" "0666" 374; page -all; /* dv2d19 * 9 float to 9 scaled * */ inst dv2d -nt "9 float to 9 scaled" -io 2 -mf1 ar rl 6 idb reg -mf2 ar rl 5 idb reg; desc1 -sd f; desc2 -sd l; data 1 "+" "0" (3) "2" 000; data 2 "+" (4) "3"; data 3 "+0015"; page -all; /* dv2d20 * 9 scaled to 4 float * */ inst dv2d -nt "9scaled->4float" -io 2 -mf1 ar rl 5 idb reg -mf2 ar rl 6 idb; desc 1 -sd l; desc 2 -sd f -tn 4; data 1 "+0" (3) "2"; data 2 303063 000; data 3 301 120 376; page -all; /* dv2d21 * 9 float to 4 scaled * */ inst dv2d -nt "9float->4scaled" -io 1 -mf1 ar rl 6 idb reg -mf2 ar rl 4 idb; desc 1 -sd f; desc 2 -sd l -tn 4; data 1 -do -1 "+0" (3) "2" 000; data 2 -do -2 303 063; data 3 300 001; page -all; /* dv2d22 * 4scaled to 9 float * */ inst dv2d -nt "4scaled-.9float" -io 1 -mf1 ar rl 4 idb -mf2 ar rl 6 idb reg; desc 1 -sd l -tn 4; desc 2 -sd f; data 1 -do -1 303063; data 2 -do -1 "+0" (3) "2" 000; data 3 "+0" (3) "6" 375; page -all; /* dv2d23 * 4 floating to 9 scaled * */ inst dv2d -nt "4float->9scaled" -io 1 -mf1 ar rl 6 idb -mf2 ar rl 5 idb reg; desc 1 -sd f -tn 4; desc 2 -sd n; data 1 -do -1 303 063 000; data 2 -do -2 "00" "555"; data 3 (4) "0" "1"; page -all; /* dv2d24 * 4 scaled to 4 float * */ inst dv2d -nt "4scaled to 4 float" -io 1 -mf1 ar rl 4 idb -mf2 ar rl 6 idb; desc 1 -tn 4 -sd l; desc 2 -tn 4 -sd f; data 1 -do -1 303 063; data 2 -do -1 302042000; data 3 300 146 376; page -all; /* dv2d25 * 4 floating to 4 scaled * */ inst dv2d -nt "4 floating to 4 scaled" -io 2 -mf1 ar rl 6 idb -mf2 ar rl 4 idb; desc 1 -tn 4 -sd f; desc 2 -tn 4 -sd l; data 1 -do -1 302042000; data 2 -do -1 303 063; data 3 300 001; page -all; /* dv2d26 * */ inst dv2d -nt "Simple divide" -io 3 -mf1 ar reg idb -mf2 ar reg idb; desc 1 -sd n -nn 3; desc 2 -sd n -nn 4; data 1 -do -1 "060"; data 2 -do -3 "0120"; data 3 "0002"; page -all; /* csl 1 * * Simple test of instruction to see if its functions. * Move 72 bits, cross no boundaries, and use no modification. * */ inst csl -nt "simple test" -bo mov ; desc 1 -ns 72 ; desc 2 -ns 72 ; data 1 -do -8 "abcdefgh" ; data 2 -do -8 "wwwwwwww" ; data 3 "abcdefgh" ; page -all ; /* csl 2 * * Move two bits one on each side of a page boundary. * No modification is used. * */ inst csl -nt "invert 2 bits across boundary" -bo inv ; desc 1 -ns 2 -cp 3 -bp 8 ; desc 2 -ns 2 -cp 3 -bp 8 ; data 1 -do 4 000 000 000 001 000 ; data 2 -do 4 000 000 000 001 000 ; data 3 000 000 000 000 400 ; page -all ; /* csl 3 * * Test moving data across 3 pages. This requires register * length modification. * */ inst csl -nt "move data across 3 pages" -bo mov -io 1 -mf1 rl 36946 -mf2 rl 36946 ; desc 1 -cp 3 -bp 4 ; desc 2 -cp 3 -bp 4 ; data 1 -do -8 000 000 000 006 (513) 146531265234623214653126 760 ; data 2 -do -8 000 000 000 037 (513) 254315456312465146515314 600 ; data 3 000 000 000 006 (513) 146531265234623214653126 760 ; page -all ; /* csl 4 * * AND bit strings using ar and reg modification in addition to * reg length modification. Use data across 3 pages. * */ inst csl -nt "ar,reg mod. AND across 3 pages" -bo and -io 2 -mf1 ar reg rl 36946 -mf2 ar reg rl 36946 ; desc 1 -cp 3 -bp 4 ; desc 2 -cp 3 -bp 4 ; data 1 -do -8 000 000 000 006 (513) 146531265234623214653126 760 ; data 2 -do -8 000 000 000 037 (513) 254315456312465146515314 600 ; data 3 000 000 000 006 (513) 044111044210421004411104 600 ; page -all ; /* csl 5 * * OR bit strings using indirect modification in addition to register * length modification. Use data across 3 pages. * */ inst csl -nt "id mod. OR across 3 pages" -bo or -io 1 -mf1 id rl 36946 -mf2 id rl 36946 ; desc 1 -cp 3 -bp 4 ; desc 2 -cp 3 -bp 4 ; data 1 -do -8 000 000 000 006 (513) 146531265234623214653126 760 ; data 2 -do -8 000 000 000 037 (513) 254315456312465146515314 600 ; data 3 000 000 000 037 (513) 356735677336667356757336 760 ; page -all ; /* csl 6 * * NAND bit strings using indirect ar and reg modification and * reg length modification. Use data across 3 pages. * */ inst csl -nt "idb mod. NAND across 3 pages" -bo nan -mf1 idb rl 36946 -mf2 idb rl 36946 ; desc 1 -cp 3 -bp 4 ; desc 2 -cp 3 -bp 4 ; data 1 -do -8 000 000 000 006 (513) 146531265234623214653126 760 ; data 2 -do -8 000 000 000 037 (513) 254315456312465146515314 600 ; data 3 000 000 000 031 (513) 733666733567356773366673 160 ; page -all ; /* csl 7 * * XOR bit strings using indirect ar and reg modification and direct * ar, reg, and register length modification. User data across 3 pages. * */ inst csl -nt "idb,ar,reg mod. XOR across 3 pgs" -bo xor -io 2 -mf1 idb ar reg rl 36946 -mf2 idb ar reg rl 36946 ; desc 1 -cp 3 -bp 4 ; desc 2 -cp 3 -bp 4 ; data 1 -do -8 000 000 000 006 (513) 146531265234623214653126 760 ; data 2 -do -8 000 000 000 037 (513) 254315456312465146515314 600 ; data 3 000 000 000 031 (513) 312624633126246352346232 160 ; page -all ; /* csl 8 * * Test bit string CLEAR operator. Data is moved across 3 pages with * full address modification. The zero indicator will be set. * */ inst csl -nt "CLEAR string. 3 pages moved" -bo zer -ir zr -io 3 -mf1 idb ar reg rl 36946 -mf2 rl 36946 ; desc 1 -cp 3 -bp 4 ; desc 2 -cp 3 -bp 4 ; data 1 -do -8 000 000 000 006 (513) 146531265234623214653126 760 ; data 2 -do -8 000 000 000 037 (513) 254315456312465146515314 600 ; data 3 000 000 000 000 (513) 000000000000000000000000 000 ; page -all ; /* csl 9 * * Test truncation with INVERT operator. Use full modification * and move data across 3 pages. * */ inst csl -nt "INVERT truncation is set" -bo inv -ir tn -io 1 -mf1 idb ar reg rl 36946 -mf2 idb ar reg rl 36943 ; desc 1 -cp 3 -bp 4 ; desc 2 -cp 3 -bp 4 ; data 1 -do -8 000 000 000 006 (513) 146531265234623214653126 760 ; data 2 -do -8 000 000 000 037 (513) 254315456312465146515314 700 ; data 3 000 000 000 031 (513) 631246512543154563124651 100 ; page -all ; /* csl 10 * * Test the use of bit file with the COINcidence operator. Use full * modification across 3 pages. The fill bit is zero. * */ inst csl -nt "COIN. bit fill(0)" -bo nox -mf1 idb ar reg rl 36943 -mf2 idb ar reg rl 36946 ; desc 1 -cp 3 -bp 4 ; desc 2 -cp 3 -bp 4 ; data 1 -do -8 000 000 000 006 (513) 146531265234623214653126 760 ; data 2 -do -8 000 000 000 037 (513) 254315456312465146515314 600 ; data 3 000 000 000 006 (513) 465153144651531425431545 760 ; page -all ; /* csr 1 * * Simple test of instruction to see if its functions. * Move 72 bits, cross no boundaries, and use no modification. * */ inst csr -nt "simple test" -bo mov ; desc 1 -ns 72 ; desc 2 -ns 72 ; data 1 -do -8 "abcdefgh" ; data 2 -do -8 "wwwwwwww" ; data 3 "abcdefgh" ; page -all ; /* csr 2 * * Move two bits one on each side of a page boundary. * No modification is used. * */ inst csr -nt "invert 2 bits across boundary" -bo inv ; desc 1 -ns 2 -cp 3 -bp 8 ; desc 2 -ns 2 -cp 3 -bp 8 ; data 1 -do 4 000 000 000 001 000 ; data 2 -do 4 000 000 000 001 000 ; data 3 000 000 000 000 400 ; page -all ; /* csr 3 * * Test moving data across 3 pages. This requires register * length modification. * */ inst csr -nt "move data across 3 pages" -bo mov -io 1 -mf1 rl 36946 -mf2 rl 36946 ; desc 1 -cp 3 -bp 4 ; desc 2 -cp 3 -bp 4 ; data 1 -do -8 000 000 000 006 (513) 146531265234623214653126 760 ; data 2 -do -8 000 000 000 037 (513) 254315456312465146515314 600 ; data 3 000 000 000 006 (513) 146531265234623214653126 760 ; page -all ; /* csr 4 * * AND bit strings using ar and reg modification in addition to * reg length modification. Use data across 3 pages. * */ inst csr -nt "ar,reg mod. AND across 3 pages" -bo and -io 2 -mf1 ar reg rl 36946 -mf2 ar reg rl 36946 ; desc 1 -cp 3 -bp 4 ; desc 2 -cp 3 -bp 4 ; data 1 -do -8 000 000 000 006 (513) 146531265234623214653126 760 ; data 2 -do -8 000 000 000 037 (513) 254315456312465146515314 600 ; data 3 000 000 000 006 (513) 044111044210421004411104 600 ; page -all ; /* csr 5 * * OR bit strings using indirect modification in addition to register * length modification. Use data across 3 pages. * */ inst csr -nt "id mod. OR across 3 pages" -bo or -io 1 -mf1 id rl 36946 -mf2 id rl 36946 ; desc 1 -cp 3 -bp 4 ; desc 2 -cp 3 -bp 4 ; data 1 -do -8 000 000 000 006 (513) 146531265234623214653126 760 ; data 2 -do -8 000 000 000 037 (513) 254315456312465146515314 600 ; data 3 000 000 000 037 (513) 356735677336667356757336 760 ; page -all ; /* csr 6 * NAND bit strings using indirect ar and reg modification and * reg length modification. Use data across 3 pages. * */ inst csr -nt "idb mod. NAND across 3 pages" -bo nan -mf1 idb rl 36946 -mf2 idb rl 36946 ; desc 1 -cp 3 -bp 4 ; desc 2 -cp 3 -bp 4 ; data 1 -do -8 000 000 000 006 (513) 146531265234623214653126 760 ; data 2 -do -8 000 000 000 037 (513) 254315456312465146515314 600 ; data 3 000 000 000 031 (513) 733666733567356773366673 160 ; page -all ; /* csr 7 * * XOR bit strings using indirect ar and reg modification and direct * ar, reg, and register length modification. User data across 3 pages. * */ inst csr -nt "idb,ar,reg mod. XOR across 3 pgs" -bo xor -io 2 -mf1 idb ar reg rl 36946 -mf2 idb ar reg rl 36946 ; desc 1 -cp 3 -bp 4 ; desc 2 -cp 3 -bp 4 ; data 1 -do -8 000 000 000 006 (513) 146531265234623214653126 760 ; data 2 -do -8 000 000 000 037 (513) 254315456312465146515314 600 ; data 3 000 000 000 031 (513) 312624633126246352346232 160 ; page -all ; /* csr 8 * * Test bit string CLEAR operator. Data is moved across 3 pages with * full address modification. The zero indicator will be set. * */ inst csr -nt "CLEAR string. 3 pages moved" -bo zer -ir zr -io 3 -mf1 idb ar reg rl 36946 -mf2 rl 36946 ; desc 1 -cp 3 -bp 4 ; desc 2 -cp 3 -bp 4 ; data 1 -do -8 000 000 000 006 (513) 146531265234623214653126 760 ; data 2 -do -8 000 000 000 037 (513) 254315456312465146515314 600 ; data 3 000 000 000 000 (513) 000000000000000000000000 000 ; page -all ; /* csr 9 * * Test truncation with INVERT operator. Use full modification * and move data across 3 pages. * */ inst csr -nt "INVERT truncation is set" -bo inv -ir tn -io 1 -mf1 idb ar reg rl 36946 -mf2 idb ar reg rl 36943 ; desc 1 -cp 3 -bp 4 ; desc 2 -cp 3 -bp 7 ; data 1 -do -8 000 000 000 006 (513) 146531265234623214653126 760 ; data 2 -do -8 000 000 000 037 (513) 254315456312465146515314 700 ; data 3 000 000 000 035 (513) 631246512543154563124651 000 ; page -all ; /* csr 10 * * Test the use of bit file with the COINcidence operator. Use full * modification across 3 pages. The fill bit is zero. * */ inst csr -nt "COIN. bit fill(0)" -bo nox -mf1 idb ar reg rl 36943 -mf2 idb ar reg rl 36946 ; desc 1 -cp 3 -bp 7 ; desc 2 -cp 3 -bp 4 ; data 1 -do -8 000 000 000 006 (513) 146531265234623214653126 760 ; data 2 -do -8 000 000 000 037 (513) 254315456312465146515314 600 ; data 3 000 000 000 002 (513) 465153144651531425431545 600 ; page -all ; /* sztl1 * Use two maximum length strings (4352 chrs or 39168 bits). * The zero indicator will be on since a bool code of "zer" * is used. Take maximum number of page faults. */ inst sztl -nt "Both strings are the same length" -bo zer -ir zr -mf1 idb ar reg rl 39168 -mf2 idb ar reg rl 39168 -io 1; data 1 -do -10 (4352)"5"; data 2 -do -30 (4352)"7"; page -all; /* sztl2 * Both the truncation and the zero indicators will be turned * on. The 1st string will begin on the last bit of a page and * the 2nd string will end on the 1st bit of a page. */ inst sztl -nt "Both strings cross page bounds" -bo zer -ir tn zr -mf1 ar -mf2 ar; desc 1 -bp 8 -ns 23; desc 2 -bp 1 -ns 18; data 1 -do -1 074 321 64; data 2 -do -4 023 776 4; page -all; /* sztl3 * No indicators are turned on. The zero fill bit is used. Bit strings * begin in the middle of a byte */ inst sztl -nt "Both strings cross page bounds" -bo and -mf1 ida ar -mf2 idb ar; desc 1 -bp 4 -ns 70; desc 2 -bp 5 -ns 80; data 1 -do -2 "3274" "1958" 0; data 2 -do -4 "4875" "7329" 326 0; page -all; /* sztl4 * The zero indicator will be turned on. Both strings are of the same length and begin and end on word boundaries. */ inst sztl -nt "only rl modification is used" -bo and -ir zr -mf1 rl 144 -mf2 rl 144 -io 2; data 1 (4)123 (12)075; data 2 (4)654 (12)402; page -all; /* sztl5 * Test the axr bool code. Set the zero and truncation * indicators. Bit strings begin in the middle of a byte * straddling a page boundary. */ inst sztl -nt "1st string is longer than 2nd" -bo axr -ir zr tn -mf1 ar reg rl 40 -mf2 ar idr rl 31; desc 1 -bp 5; desc 2 -bp 5; data 1 -do -1 074 321 652 403 777; data 2 -do -3 777 777 676 603; page -all; /* sztl6 * Test the axr bool code. No indicators will be set */ inst sztl -nt "Both strings are the same length" -bo axr -mf1 rl 7866 -mf2 rl 7866; data 1 (874)"321"; data 2 (874) "604"; page -all; /* sztl7 * Test the mov bool code. Use a maximum length string and the * zero fill bit. Take the maximum number of page faults. */ inst sztl -nt "2nd string is longer than 1st" -bo mov -mf1 ida ar rl 36000 -mf2 idb ar reg rl 39168 -io 1; data 1 -do -40 (1000)"9874"; data 2 -do -20 (1088) "0000"; page -all; /* sztl8 * Test the move bool code. Set the zero indicator. * The first string is all zeroes. */ inst sztl -nt "2nd string is longer than 1st" -bo mov -ir zr -mf1 ar id -mf2 ar -io 2; desc 1 -bp 7 -ns 99; desc 2 -bp 1 -ns 100; data 1 -do 20 (12)000; data 2 -do 3 "abcde123456" 4; page -all; /* sztl9 * Test xra bool code. Set zero and truncation indicators. * Use two short bit strings which cross page boundaries. */ inst sztl -nt "1st string is longer than 2nd" -bo xra -ir tn zr -mf1 ar idr -mf2 ar idb; desc 1 -ns 3 -bp 7; desc 2 -ns 2 -bp 8; data 1 -do -1 777 4; data 2 -do -1 235 0; page -all; /* sztl10 * Test xra bool code. Use the zero fill bit. No indicators are set */ inst sztl -nt "2nd string is longer than 1st" -bo xra -mf1 idr reg -mf2 idr -io 2; desc 1 -ns 400; desc 2 -ns 500; data 1 (44)"9" 72; data 2 (55)"8" 36; page -all; /* sztl11 * Test ra2 bool code. Set the zero indicator. This means * that the 2nd bit string must be all zeroes. */ inst sztl -nt "2nd string is longer than 1st" -bo ra2 -mf1 ar rl 36 -mf2 reg -ir zr -io 1; desc 1 -bp 4; desc 2 -ns 36; data 1 -do -1 "abcd" 70; data 2 (4)000; page -all; /* sztl12 * Test ra2 bool code. No indicators are set. */ inst sztl -nt "Both strings are the same length" -bo ra2 -mf1 reg -mf2 ar rl 36 -io 2; desc 1 -ns 36; desc 2 -bp 4; data 1 (4)000; data 2 -do -1 "abcd" 70; page -all; /* sztl13 * Test xor bool code. Set the zero indicator. Use zero fill. */ inst sztl -nt "2nd string is longer than 1st" -bo xor -mf1 id reg -mf2 ar; desc 1 -ns 3600; desc 2 -ns 3672 -bp 7; data 1 -do -8 (100)3526; data 2 -do -63 000 (100)7254 (7)000; page -all; /* sztl14 * Test xor bool code. use strings of identical length. * No indicators are set. */ inst sztl -nt "Both strings are the same length" -bo xor; desc 1 -ns 900; desc 2 -ns 900; data 1 -do -12 (10) "abcdefghij"; data 2 -do -4 (10) "1234567890"; page -all; /* sztl15 * Test the or bool code. Set zero and truncation indicators. * This means that both bit strings must be all zeroes. The * first bit string must be longer than the second */ inst sztl -nt "1st string is longer than 2nd" -bo or -ir zr tn -mf1 rl 30 idb ar -mf2 rl 20 ar ida; data 1 000 000 000 0; data 2 000 000 0; page -all; /* sztl16 * Test the or bool code. No indicators are set. * The one fill bit is used. */ inst sztl -nt "2nd string is longer than 1st" -bo or -fb -mf1 rl 3000 ar id -mf2 rl 3900 ar idr -io 1; data 1 (1000)7; data 2 (325)"x" (325)3 ; page -all; /* sztl17 * Test the nor bool code. No indicators are set. */ inst sztl -nt "2nd string is longer than 1st" -bo nor -mf1 ida ar rl 14 -mf2 id ar rl 28 -io 2; data 1 342 22; data 2 234 760 621 0; page -all; /* sztl18 * Test the nor bool code. Set the zero indicator. * Use the one fill bit */ inst sztl -nt "2nd string is longer than 1st" -ir zr -bo nor -fb -mf1 ar -mf2 rl 19; desc 1 -ns 8 -bp 1; data 1 777; data 2 326 417 0; page -all; /* sztl19 * Test the nox bool code. Set the zero indicator. * For the indicator to be set, no two bits may matc. */ inst sztl -nt "Both strings are the same length" -ir zr -bo nox -mf1 id -mf2 ida; desc 1 -ns 54; desc 2 -ns 54; data 1 124 235 647 211 000 777; data 2 -do -4 653 542 130 566 777 000; page -all; /* sztl20 * Test the Nox bool code. Only the truncation indicator is set. */ inst sztl -nt "1st string is longer than 2nd" -bo nox -ir tn -mf1 ar rl 36000 -mf2 ar id -io 1; desc 1 -bp 7; desc 2 -bp 3 -ns 3600; data 1 003 (1000)"axyr"; data 2 024 (100)"rjqf"; page -all; /* sztl21 * Test the iv2 bool code. Both the zero and the truncation * indicators will be set. For the zero indicator to be set, * the 2nd bit string must be all ones. */ inst sztl -nt "1st string is longer than 2nd" -bo iv2 -ir zr tn -mf1 rl 64 ar reg -mf2 ar id -io 1; desc 1 -bp 6; desc 2 -ns 32 -bp 3; data 1 -do -1 "abpstuv" 4; data 2 077 777 777 776; page -all; /* sztl22 * Test the iv2 bool code. Use the zero fill bit. No indicators are set. */ inst sztl -nt "2nd string is longer than 1st" -bo iv2 -mf1 ar id -mf2 rl 64 ar reg -io 1; desc 1 -ns 32 -bp 3; desc 2 -bp 6; data 1 077 777 777 776; data 2 -do -1 "abpstuv" 4; page -all; /* sztl23 * Test the xrx bool code. The zero indicator will be set. * This can occur only when every bit in the first string is zero * and every bit in the 2nd string is one. */ inst sztl -nt "Both strings are the same length" -bo xrx -ir zr -mf1 reg -mf2 id; desc 1 -ns 108; desc 2 -ns 108; data 1 -do -4 (12)000; data 2 -do 4 (12)777; page -all; /* sztl24 * Test the xrx bool code. No indicators are set. The zero fill bit is used */ inst sztl -nt "2nd string is longer than 1st" -bo xrx -mf1 rl 720 idr ar -mf2 id -io 2; desc 2 -ns 1080 -bp 4; data 1 -do -3 (20)"ijkl"; data 2 -do 8 054 (30)"9832"; page -all; /* sztl25 * Test the inv bool code. Set the zero indicator. * To set the indicator, the first bit string must be * all ones. */ inst sztl -nt "Both string are the same length" -ir zr -bo inv -mf1 idb ar reg -mf2 idb ar; desc 1 -bp 5 -ns 13; desc 2 -bp 2 -ns 13; data 1 777 777; data 2 265 43; page -all; /* sztl26 * Test the inv bool code. No indicators are set */ inst sztl -nt "Both strings are the same length" -bo inv -mf1 idb ar -mf2 idb ar reg; desc 1 -bp 2 -ns 13; desc 2 -bp 5 -ns 13; data 1 265 43; data 2 777 777; page -all; /* sztl27 * Test the xxr bool code. This test sets the zero indicator. * The zero indicator is set only when the 1st string is all ones and * the second string is all zeroes. The one fill bit is used. */ inst sztl -nt "2nd string is longer than 1st" -ir zr -fb -bo xxr -io2; desc 1 -ns 1; desc 2 -ns 2; data 1 4; data 2 0; page -all; /* sztl28 * Test the xxr bool code. No indicators are set */ inst sztl -nt "2nd string is longer than 1st" -bo xxr -mf1 ar -mf2 reg rl 59; desc 1 -ns 43 -bp 5; data 1 -do -2 "tsrkv" 3; data 2 -do -4 "mnopqrs"; page -all; /* sztl29 * Test the nan bool code. The zero and truncation indicators * are set. For the zero indicator to be set, both bit strings * must be all ones. */ inst sztl -nt "1st string is longer than 2nd" -bo nan -ir zr tn -mf1 rl 39168 ar -mf2 rl 33000; data 1 (4352)777; data 2 (3667)777; page -all; /* sztl30 * Test the nan bool code. No indicators are set. * The one fill bit is set. */ inst sztl -nt "2nd string is longer than 1st" -fb -bo nan -mf1 ar -mf2 ar rl 436; desc 1 -bp 3 -ns 274; data 1 (7)"tack" "rgm"; data 2 (12)"mike" 023; page -all; /* sztl31 * Test the "set" bool code. The zero indicator cannot be set * when the "set" code is used. This test sets the truncation indicator. */ inst sztl -nt "1st string is longer than 2nd" -ir tn -bo set; desc 1 -ns 50; desc 2 -ns 49; data 1 023 571 725 152 111 243; data 2 023 571 777 043 121 000; page -all; /* sztl32 * Test the "set" bool code. No indicators are set. * The maximum number of page faults is taken */ inst sztl -nt "2nd string is longer than 1st" -bo set -mf1 idb ar reg rl 39159 -mf2 idb ar reg rl 39168 -io 1 -fb; data 1 (4351)000; data 2 (4352)071; page -all; /* sztr1 * Use two maximum length strings (4352 chrs or 39168 bits). * The zero indicator will be on since a bool code of "zer" * is used. Take maximum number of page faults. */ inst sztr -nt "Both strings are the same length" -bo zer -ir zr -mf1 idb ar reg rl 39168 -mf2 idb ar reg rl 39168 -io 1; data 1 -do -10 (4352)"5"; data 2 -do -30 (4352)"7"; page -all; /* sztr2 * Both the truncation and the zero indicators will be turned * on. The 1st string will begin on the last bit of a page and * the 2nd string will end on the 1st bit of a page. */ inst sztr -nt "Both strings cross page bounds" -bo zer -ir tn zr -mf1 ar -mf2 ar; desc 1 -bp 8 -ns 23; desc 2 -bp 1 -ns 18; data 1 -do -1 074 321 64; data 2 -do -4 023 776 4; page -all; /* sztr3 * No indicators are turned on. The zero fill bit is used. Bit strings * begin in the middle of a byte */ inst sztr -nt "Both strings cross page bounds" -bo and -mf1 ida ar -mf2 idb ar; desc 1 -bp 4 -ns 70; desc 2 -bp 5 -ns 80; data 1 -do -2 "3274" "1958" 0; data 2 -do -4 "4875" "7329" 326 0; page -all; /* sztr4 * The zero indicator will be turned on. Both strings are of the same length and begin and end on word boundaries. */ inst sztr -nt "only rl modification is used" -bo and -ir zr -mf1 rl 144 -mf2 rl 144 -io 2; data 1 (4)123 (12)075; data 2 (4)654 (12)402; page -all; /* sztr5 * Test the axr bool code. Set the zero and truncation * indicators. Bit strings begin in the middle of a byte * straddling a page boundary. */ inst sztr -nt "1st string is longer than 2nd" -bo axr -ir tn -mf1 ar reg rl 40 -mf2 ar idr rl 31; desc 1 -bp 5; desc 2 -bp 5; data 1 -do -1 074 321 652 403 777; data 2 -do -3 777 777 676 603; page -all; /* sztr6 * Test the axr bool code. No indicators will be set */ inst sztr -nt "Both strings are the same length" -bo axr -mf1 rl 7866 -mf2 rl 7866; data 1 (874)"321"; data 2 (874) "604"; page -all; /* sztr7 * Test the mov bool code. Use a maximum length string and the * zero fill bit. Take the maximum number of page faults. */ inst sztr -nt "2nd string is longer than 1st" -bo mov -mf1 ida ar rl 36000 -mf2 idb ar reg rl 39168 -io 1; data 1 -do -40 (1000)"9874"; data 2 -do -20 (1088) "0000"; page -all; /* sztr8 * Test the move bool code. Set the zero indicator. * The first string is all zeroes. */ inst sztr -nt "2nd string is longer than 1st" -bo mov -ir zr -mf1 ar id -mf2 ar -io 2; desc 1 -bp 7 -ns 99; desc 2 -bp 1 -ns 100; data 1 -do 20 (12)000; data 2 -do 3 "abcde123456" 4; page -all; /* sztr9 * Test xra bool code. Set zero and truncation indicators. * Use two short bit strings which cross page boundaries. */ inst sztr -nt "1st string is longer than 2nd" -bo xra -ir tn zr -mf1 ar idr -mf2 ar idb; desc 1 -ns 3 -bp 7; desc 2 -ns 2 -bp 8; data 1 -do -1 777 4; data 2 -do -1 235 0; page -all; /* sztr10 * Test xra bool code. Use the zero fill bit. No indicators are set */ inst sztr -nt "2nd string is longer than 1st" -bo xra -mf1 idr reg -mf2 idr -io 2; desc 1 -ns 400; desc 2 -ns 500; data 1 (44)"9" 72; data 2 (55)"8" 36; page -all; /* sztr11 * Test ra2 bool code. Set the zero indicator. This means * that the 2nd bit string must be all zeroes. */ inst sztr -nt "2nd string is longer than 1st" -bo ra2 -mf1 ar rl 36 -mf2 reg -ir zr -io 1; desc 1 -bp 4; desc 2 -ns 36; data 1 -do -1 "abcd" 70; data 2 (4)000; page -all; /* sztr12 * Test ra2 bool code. No indicators are set. */ inst sztr -nt "Both strings are the same length" -bo ra2 -mf1 reg -mf2 ar rl 36 -io 2; desc 1 -ns 36; desc 2 -bp 4; data 1 (4)000; data 2 -do -1 "abcd" 70; page -all; /* sztr13 * Test xor bool code. Set the zero indicator. Use zero fill. */ inst sztr -nt "2nd string is longer than 1st" -bo xor -mf1 id reg -mf2 ar; desc 1 -ns 3600; desc 2 -ns 3672 -bp 7; data 1 -do -8 (100)3526; data 2 -do -63 000 (100)7254 (7)000; page -all; /* sztr14 * Test xor bool code. use strings of identical length. * No indicators are set. */ inst sztr -nt "Both strings are the same length" -bo xor; desc 1 -ns 900; desc 2 -ns 900; data 1 -do -12 (10) "abcdefghij"; data 2 -do -4 (10) "1234567890"; page -all; /* sztr15 * Test the or bool code. Set zero and truncation indicators. * This means that both bit strings must be all zeroes. The * first bit string must be longer than the second */ inst sztr -nt "1st string is longer than 2nd" -bo or -ir zr tn -mf1 rl 30 idb ar -mf2 rl 20 ar ida; data 1 000 000 000 0; data 2 000 000 0; page -all; /* sztr16 * Test the or bool code. No indicators are set. * The one fill bit is used. */ inst sztr -nt "2nd string is longer than 1st" -bo or -fb -mf1 rl 3000 ar id -mf2 rl 3900 ar idr -io 1; data 1 (1000)7; data 2 (325)"x" (325)3 ; page -all; /* sztr17 * Test the nor bool code. No indicators are set. */ inst sztr -nt "2nd string is longer than 1st" -bo nor -mf1 ida ar rl 14 -mf2 id ar rl 28 -io 2; data 1 342 22; data 2 234 760 621 0; page -all; /* sztr18 * Test the nor bool code. Set the zero indicator. * Use the one fill bit */ inst sztr -nt "2nd string is longer than 1st" -ir zr -bo nor -fb -mf1 ar -mf2 rl 19; desc 1 -ns 8 -bp 1; data 1 777; data 2 326 417 0; page -all; /* sztr19 * Test the nox bool code. Set the zero indicator. * For the indicator to be set, no two bits may matc. */ inst sztr -nt "Both strings are the same length" -ir zr -bo nox -mf1 id -mf2 ida; desc 1 -ns 54; desc 2 -ns 54; data 1 124 235 647 211 000 777; data 2 -do -4 653 542 130 566 777 000; page -all; /* sztr20 * Test the Nox bool code. Only the truncation indicator is set. */ inst sztr -nt "1st string is longer than 2nd" -bo nox -ir tn -mf1 ar rl 36000 -mf2 ar id -io 1; desc 1 -bp 7; desc 2 -bp 3 -ns 3600; data 1 003 (1000)"axyr"; data 2 024 (100)"rjqf"; page -all; /* sztr21 * Test the iv2 bool code. Both the zero and the truncation * indicators will be set. For the zero indicator to be set, * the 2nd bit string must be all ones. */ inst sztr -nt "1st string is longer than 2nd" -bo iv2 -ir zr tn -mf1 rl 64 ar reg -mf2 ar id -io 1; desc 1 -bp 6; desc 2 -ns 32 -bp 3; data 1 -do -1 "abpstuv" 4; data 2 077 777 777 776; page -all; /* sztr22 * Test the iv2 bool code. Use the zero fill bit. No indicators are set. */ inst sztr -nt "2nd string is longer than 1st" -bo iv2 -mf1 ar id -mf2 rl 64 ar reg -io 1; desc 1 -ns 32 -bp 3; desc 2 -bp 6; data 1 077 777 777 776; data 2 -do -1 "abpstuv" 4; page -all; /* sztr23 * Test the xrx bool code. The zero indicator will be set. * This can occur only when every bit in the first string is zero * and every bit in the 2nd string is one. */ inst sztr -nt "Both strings are the same length" -bo xrx -ir zr -mf1 reg -mf2 id; desc 1 -ns 108; desc 2 -ns 108; data 1 -do -4 (12)000; data 2 -do 4 (12)777; page -all; /* sztr24 * Test the xrx bool code. No indicators are set. The zero fill bit is used */ inst sztr -nt "2nd string is longer than 1st" -bo xrx -mf1 rl 720 idr ar -mf2 id -io 2; desc 2 -ns 1080 -bp 4; data 1 -do -3 (20)"ijkl"; data 2 -do 8 054 (30)"9832"; page -all; /* sztr25 * Test the inv bool code. Set the zero indicator. * To set the indicator, the first bit string must be * all ones. */ inst sztr -nt "Both string are the same length" -ir zr -bo inv -mf1 idb ar reg -mf2 idb ar; desc 1 -bp 5 -ns 13; desc 2 -bp 2 -ns 13; data 1 777 777; data 2 265 43; page -all; /* sztr26 * Test the inv bool code. No indicators are set */ inst sztr -nt "Both strings are the same length" -bo inv -mf1 idb ar -mf2 idb ar reg; desc 1 -bp 2 -ns 13; desc 2 -bp 5 -ns 13; data 1 265 43; data 2 777 777; page -all; /* sztr27 * Test the xxr bool code. This test sets the zero indicator. * The zero indicator is set only when the 1st string is all ones and * the second string is all zeroes. The one fill bit is used. */ inst sztr -nt "2nd string is longer than 1st" -ir zr -fb -bo xxr -io2; desc 1 -ns 1; desc 2 -ns 2; data 1 4; data 2 0; page -all; /* sztr28 * Test the xxr bool code. No indicators are set */ inst sztr -nt "2nd string is longer than 1st" -bo xxr -mf1 ar -mf2 reg rl 59; desc 1 -ns 43 -bp 5; data 1 -do -2 "tsrkv" 3; data 2 -do -4 "mnopqrs"; page -all; /* sztr29 * Test the nan bool code. The zero and truncation indicators * are set. For the zero indicator to be set, both bit strings * must be all ones. */ inst sztr -nt "1st string is longer than 2nd" -bo nan -ir zr tn -mf1 rl 39168 ar -mf2 rl 33000; data 1 (4352)777; data 2 (3667)777; page -all; /* sztr30 * Test the nan bool code. No indicators are set. * The one fill bit is set. */ inst sztr -nt "2nd string is longer than 1st" -fb -bo nan -mf1 ar -mf2 ar rl 436; desc 1 -bp 3 -ns 274; data 1 (7)"tack" "rgm"; data 2 (12)"mike" 023; page -all; /* sztr31 * Test the "set" bool code. The zero indicator cannot be set * when the "set" code is used. This test sets the truncation indicator. */ inst sztr -nt "1st string is longer than 2nd" -ir tn -bo set; desc 1 -ns 50; desc 2 -ns 49; data 1 023 571 725 152 111 243; data 2 023 571 777 043 121 000; page -all; /* sztr32 * Test the "set" bool code. No indicators are set. * The maximum number of page faults is taken */ inst sztr -nt "2nd string is longer than 1st" -bo set -mf1 idb ar reg rl 39159 -mf2 idb ar reg rl 39168 -io 1 -fb; data 1 (4351)000; data 2 (4352)071; page -all; /* cmpb1 * Use two maximum length strings (4352 chrs or 39168 bits) * with the first string less than the 2nd. Take the maximum * number of page faults. */ inst cmpb -nt "both strings cross page bounds" -mf1 idb ar reg rl 39168 -mf2 idb ar reg rl 39168 -io 1; data 1 -do -10 (4352)"5"; data 2 -do -30 (4352)"7"; page -all; /* cmpb2 * The first string begins on the last bit of a page and the * 2nd string ends on the first bit of a page. The first string is * greater than the 2nd. */ inst cmpb -nt "both strings cross page bounds" -ir cr -mf1 ar -mf2 ar; desc 1 -bp 8 -ns 23; desc 2 -bp 1 -ns 18; data 1 -do -1 074 321 64; data 2 -do -4 023 776 4; page -all; /* cmpb3 * Both strings begin in the middle of a byte and span page boundaries. * The first string is greater than the 2nd. */ inst cmpb -nt "both strings cross page bounds" -ir cr -mf1 ida ar -mf2 idb ar; desc 1 -bp 4 -ns 70; desc 2 -bp 5 -ns 80; data 1 -do -2 "3274" "1958" 0; data 2 -do -4 "4875" "7329" 326 0; page -all; /* cmpb4 * Both strings are 4 words in length and neither string spans a page boundary. The first string is * less than the 2nd. */ inst cmpb -nt "both strings are the same length" -mf1 rl 144 -mf2 rl 144 -io 2; data 1 (4)123 (12)075; data 2 (4)654 (12)402; page -all; /* cmpb5 * Both strings begin in the middle of a byte and span a * page boundary. The first string is less than the 2nd. */ inst cmpb -nt "2nd string has indirect desc" -mf1 ar reg rl 40 -mf2 ar idr rl 31; desc 1 -bp 5; desc 2 -bp 5; data 1 -do -1 074 321 652 403 777; data 2 -do -3 777 777 676 603; page -all; /* cmpb6 * Both strings are 874 bytes in length and the first string * is less than the 2nd. Only 3 page faults occur. */ inst cmpb -nt "both strings are the same length" -mf1 rl 7866 -mf2 rl 7866; data 1 (874)"321"; data 2 (874) "604"; page -all; /* cmpb7 * The first string is l000 words in length and the * 2nd string is 1088 words of all zeroes. The first * string is greater than the 2nd. */ inst cmpb -nt "both strings cross page bounds" -ir cr -mf1 ida ar rl 36000 -mf2 idb ar reg rl 39168 -io 1; data 1 -do -40 (1000)"9874"; data 2 -do -20 (1088) "0000"; page -all; /* cmpb8 * Both strings begin in the middle of a byte and * neither string spans a page boundary. The first string is less * than the 2nd. */ inst cmpb -nt "2nd string is longer than 1st" -mf1 ar id -mf2 ar -io 2; desc 1 -bp 7 -ns 99; desc 2 -bp 1 -ns 100; data 1 -do 20 (12)000; data 2 -do 3 "abcde123456" 4; page -all; /* cmpb9 * Both strings begin in the middle of a byte and span pages. * The first string is all ones and is greater than the 2nd. */ inst cmpb -nt "1st string is longer than 2nd" -ir cr -mf1 ar idr -mf2 ar idb; desc 1 -ns 3 -bp 7; desc 2 -ns 2 -bp 8; data 1 -do -1 777 4; data 2 -do -1 235 0; page -all; /* cmpb10 * The first string is greater than the 2nd, although it is shorter in length. */ inst cmpb -nt "2nd string is longer than 1st" -ir cr -mf1 idr reg -mf2 idr -io 2; desc 1 -ns 400; desc 2 -ns 500; data 1 (44)"9" 72; data 2 (55)"8" 36; page -all; /* cmpb11 * Both strings are 1 word in length and only the 1st * string spans a page boundary. The first string is greater * than the 2nd. */ inst cmpb -nt "2nd string is longer than 1st" -mf1 ar rl 36 -mf2 reg -ir cr -io 1; desc 1 -bp 4; desc 2 -ns 36; data 1 -do -1 "abcd" 70; data 2 (4)000; page -all; /* cmpb12 * Both strings are 1 word in length and only * the 2nd string spans a page boundary. The 2nd string * is greater than the first. */ inst cmpb -nt "both strings are the same length" -mf1 reg -mf2 ar rl 36 -io 2; desc 1 -ns 36; desc 2 -bp 4; data 1 (4)000; data 2 -do -1 "abcd" 70; page -all; /* cmpb13 * The first string is 100 words in length and the 2nd string is 102 words long. Both strings span a page and the first string is greater than the 2nd. */ inst cmpb -nt "2nd string is longer than 1st" -ir cr -mf1 id reg -mf2 ar; desc 1 -ns 3600; desc 2 -ns 3672 -bp 7; data 1 -do -8 (100)3526; data 2 -do -63 000 (100)7254 (7)000; page -all; /* cmpb14 * Both strings are 100 bytes long and span a page. The first string is larger than the 2nd. */ inst cmpb -nt "both strings are the same length" -ir cr; desc 1 -ns 900; desc 2 -ns 900; data 1 -do -12 (10) "abcdefghij"; data 2 -do -4 (10) "1234567890"; page -all; /* cmpb15 * Both strings are all zeroes and thus they are equal. */ inst cmpb -nt "1st string is longer than 2nd" -ir cr zr -mf1 rl 30 idb ar -mf2 rl 20 ar ida; data 1 000 000 000 0; data 2 000 000 0; page -all; /* cmpb16 * The first string is shorter than the 2nd and the one fill bit is used. The first string is all ones and is greater than the 2nd. */ inst cmpb -nt "2nds string is longer than 1st" -ir cr -fb -mf1 rl 3000 ar id -mf2 rl 3900 ar idr -io 1; data 1 (1000)7; data 2 (325)"x" (325)3 ; page -all; /* cmpb17 * The first string is greater than the 2nd although it is shorter in length. */ inst cmpb -nt "2nd string is longer than 1st" -ir cr -mf1 ida ar rl 14 -mf2 id ar rl 28 -io 2; data 1 342 22; data 2 234 760 621 0; page -all; /* cmpb18 * The fill bit is used to make the first string all ones. * The first string is greater than the second. */ inst cmpb -nt "2nd string is longer than 1st" -ir cr -fb -mf1 ar -mf2 rl 19; desc 1 -ns 8 -bp 1; data 1 777; data 2 326 417 0; page -all; /* cmpb19 * Both strings are 6 bytes in length and the 2nd string * spans a page boundary. The first string is less than the 2nd. */ inst cmpb -nt "both strings are the same length" -mf1 id -mf2 ida; desc 1 -ns 54; desc 2 -ns 54; data 1 124 235 647 211 000 777; data 2 -do -4 653 542 130 566 777 000; page -all; /* cmpb20 * Both strings begin in the middle of a byte. The first * string is 1000 words long while the 2nd string is 100 * words long. The first string is greater than the 2nd. */ inst cmpb -nt "1st string is longer than 2nd" -ir cr -mf1 ar rl 36000 -mf2 ar id -io 1; desc 1 -bp 7; desc 2 -bp 3 -ns 3600; data 1 003 (1000)"axyr"; data 2 024 (100)"rjqf"; page -all; /* cmpb21 * Both strings begin in the middle of a byte and only the first string crosses a page boundary. The 2nd string is all ones and is greater than the first. */ inst cmpb -nt "1st string is longer than 2nd" -mf1 rl 64 ar reg -mf2 ar id -io 1; desc 1 -bp 6; desc 2 -ns 32 -bp 3; data 1 -do -1 "abpstuv" 4; data 2 077 777 777 776; page -all; /* cmpb22 * Both strings begin in the middle of a byte and only the 2nd string crosses a page boundary. The first string is all ones and is greater than the 2nd string. */ inst cmpb -nt "2nd string is longer than 1st" -ir cr -mf1 ar id -mf2 rl 64 ar reg -io 1; desc 1 -ns 32 -bp 3; desc 2 -bp 6; data 1 077 777 777 776; data 2 -do -1 "abpstuv" 4; page -all; /* cmpb23 * Both strings are three words in length and the 1st string crosses a page boundary. The 2nd string is greater than the first. */ inst cmpb -nt "both strings are the same length" -mf1 reg -mf2 id; desc 1 -ns 108; desc 2 -ns 108; data 1 -do -4 (12)000; data 2 -do 4 (12)777; page -all; /* cmpb24 * The 1st string is 20 words in length and crosses a page boundary. The 2nd string is 30 words in length and is greater than the 1st. */ inst cmpb -nt "2nd string is longer than 1st" -mf1 rl 720 idr ar -mf2 id -io 2; desc 2 -ns 1080 -bp 4; data 1 -do -3 (20)"ijkl"; data 2 -do 8 054 (30)"9832"; page -all; /* cmpb25 * Both strings begin in the middle of a byte. The first string is all ones and is greater than the 2nd. */ inst cmpb -nt "both strings are the same length" -ir cr -mf1 idb ar reg -mf2 idb ar; desc 1 -bp 5 -ns 13; desc 2 -bp 2 -ns 13; data 1 777 777; data 2 265 43; page -all; /* cmpb26 * Both strings begin in the middle of a byte. The 2nd string is all ones and is greater than the first. */ inst cmpb -nt "both strings are the same length" -mf1 idb ar -mf2 idb ar reg; desc 1 -bp 2 -ns 13; desc 2 -bp 5 -ns 13; data 1 265 43; data 2 777 777; page -all; /* cmpb27 * The first string is one bit in length and the 2nd string is two bits long. The one fill bit is used and the first string is greater. */ inst cmpb -nt "2nd string is longer than 1st" -ir cr -fb -io2; desc 1 -ns 1; desc 2 -ns 2; data 1 4; data 2 0; page -all; /* cmpb28 * The 1st string begins in the middle of a byte and both strings cross page boundaries. The first string is greater than the 2nd. */ inst cmpb -nt "2nd string is longer than 1st" -ir cr -mf1 ar -mf2 reg rl 59; desc 1 -ns 43 -bp 5; data 1 -do -2 "tsrkv" 3; data 2 -do -4 "mnopqrs"; page -all; /* cmpb29 * Both strings consist of all ones but the first string is longer and the zero fill bit is used. Therefore, the first string is greater than the 2nd. */ inst cmpb -nt "1st string is longer than 2nd" -ir cr -mf1 rl 39168 ar -mf2 rl 33000; data 1 (4352)777; data 2 (3667)777; page -all; /* cmpb30 * The first string starts in the middle of a byte and neither string crosses a page boundary. The first string is greater than the second. */ inst cmpb -nt "2nd string is longer than 1st" -ir cr -fb -mf1 ar -mf2 ar rl 436; desc 1 -bp 3 -ns 274; data 1 (7)"tack" "rgm"; data 2 (12)"mike" 023; page -all; /* cmpb31 * Neither string crosses a page boundary and the first string is less than the 2nd. */ inst cmpb -nt "1st string is longer than 2nd"; desc 1 -ns 50; desc 2 -ns 49; data 1 023 571 725 152 111 243; data 2 023 571 777 043 121 000; page -all; /* cmpb32 * The first string consists of all zeroes and neither string crosses a page boundary. The second string is both longer and greater. */ inst cmpb -nt "2nd string is longer than 1st" -mf1 idb ar reg rl 39159 -mf2 idb ar reg rl 39168 -io 1 -fb; data 1 (4351)000; data 2 (4352)071; page -all; /* dtb1 * Indirect descriptors are used for both operands. * Address register modification is used for both operands. * The decimal operand is split across a page boundary. */ inst dtb -nt "9-bit unsigned decimal -> binary" -mf2 idb ar reg rl 1 -mf1 idb ar reg rl 2 -io 1; desc 1 -sd n; data 2 034; data 1 -do -1 "28"; page -all; /* dtb2 * No indirect descriptors are used. * Address register modification is used for both operands. * Both operands cross a page boundary. */ inst dtb -nt "9-bit leading sign -> binary" -mf2 ar -mf1 ar; desc 2 -nn 2; desc 1 -nn 6 -sd l; data 2 -do -1 127 531; data 1 -do -3 "+44889"; page -all; /* dtb3 * Indirect descriptors are used by both operands. * Address register modification is used for both operands. * Both operands cross a page boundary. */ inst dtb -nt "9-bit trailing sign -> binary" -mf2 ida ar -mf1 idb ar; desc 2 -nn 3; desc 1 -nn 9 -sd t; data 2 -do -2 211 664 372; data 1 -do -4 "36137210+"; page -all; /* dtb4 * No indirect descriptors are used. * No address register modification is used. * The decimal operand is split across a page boundary. * Register length modification is used by both operands. */ inst dtb -nt "9-bit unsigned decimal -> binary" -mf2 rl 4 -mf1 rl 10; desc 1 -sd n; data 2 111 222 333 444; data 1 -do -8 "9836279588"; page -all; /* dtb5 * Address register modification is used by both operands. * An indirect descriptor is used by the decimal operand. * Simple register modification is used by the binary operand. * Register length modification is used by both operands. */ inst dtb -nt "9-bit leading sign -> bim"nary" -mf2 ar reg rl 5 -mf1 ar idr rl 15; desc 1 -sd l; data 2 -do -4 333 444 333 222 111; data 1 -do -12 "+15088814466121"; page -all; /* dtb6 * Address register modification is used by both operands. * An indirect descriptor is used by the binary operand. * Neither operand crosses a page boundary. */ inst dtb -nt "9-bit trailing sign -> binary" -mf2 ar id -mf1 ar; desc 2 -nn 6; desc 1 -nn 17 -sd t; data 2 123 456 765 432 123 456; data 1 "2941123482396462+"; page -all; /* dtb7 * Simple register modification is used by both operands. * An indirect descriptor is used by the decimal operand. * Both operands begin in the middle of a page. * Neither operand spans a page boundary. */ inst dtb -nt "9-bit unsigned decimal -> binary" -mf2 reg -mf1 reg id; desc 2 -nn 7; desc 1 -nn 19 -sd n; data 2 -do 80 321 456 372 415 210 000 000; data 1 -do 60 "3775652184861966336"; page -all; /* dtb8 * Both operands use only simple register modification. * Neither operand spans a page boundary. * Both operands begin on the 1st byte of a page. */ inst dtb -nt "9-bit leading sign -> binary" -mf2 reg -mf1 reg; desc 2 -nn 8; desc 1 -nn 22 -sd l; data 2 124 570 642 000 000 375 125 743; data 1 "+781551372002965892067"; page -all; /* dtb9 * An indirect descriptor is used by the binary operand. * Neither operand spans a page boundary. * Both operands begin on the 1st byte of a page. * The eis instruction itself spans a page boundary. * No modifications are made to the decimal operand. */ inst dtb -nt "4-bit unsigned decimal -> binary" -mf2 id -io 1; desc 2 -nn 1; desc 1 -tn 4 -nn 2 -sd n; data 2 034; data 1 050 000; page -all; /* dtb10 * Address register modification is used for the binary operand. * No modifications are made to the decimal operand. * Both operands span a page boundary. */ inst dtb -nt "4-bit leading sign -> binary" -mf2 ar -io 1; desc 2 -nn 2; desc 1 -tn 4 -nn 6 -sd l; data 2 -do -1 127 531; data 1 -do -4 304110211000 000000; page -all; /* dtb11 * Address register modification is used for the decimal operand. * No modifications are made to the binary operand. * Only the decimal operand spans a page boundary. * The eis instruction itself spans a page boundary. */ inst dtb -nt "4-bit trailing sign -> binary" -mf1 ar -io2; desc 2 -nn 3; desc 1 -tn 4 -nn 9 -sd t; data 2 211 664 372; data 1 -do -8 066023162020 300000000000000; page -all; /* dtb12 * Indirect descriptors are used for both operands. * No address register modification is used. * Neither operand spans a page boundary. * Both operands begin on the 1st byte of a page. * The eis instruction itself spans a page boundary. */ inst dtb -nt "4-bit unsigned decimal -> binary" -mf2 id -mf1 id -io 2; desc 2 -nn 4; desc 1 -tn 4 -nn 10 -sd n; data 2 111 222 333 444; data 1 230066047225 210000000000; page -all; /* dtb13 * No modifications are made to the binary operand. * Address register modification is used for the decimal operand. * An indirect descriptor is used by the decimal operand. * Both operands span a page boundary. */ inst dtb -nt "4-bit leading sign -> binary" -mf1 ar id -io 1; desc 2 -nn 5; desc 1 -tn 4 -nn 15 -sd l; data 2 -do -4 333 444 333 222 111; data 1 -do -8 301120210201 104146022020; page -all; /* dtb14 * Indirect descriptors are used by both operands. * Both operands span a page boundary. */ inst dtb -nt "4-bit trailing sign -> binary" -mf2 idr -mf1 ida; desc 2 -nn 6; desc 1 -tn 4 -nn 17 -sd t; data 2 -do -4 123 456 765 432 123 456; data 1 -do -16 051101022064 202071144142 300; page -all; /* dtb15 * Indirect descriptors are used for both operands. * Address register modification is used for both operands. * Both operands span a page boundary. * The eis instruction itself spans a page boundary. */ inst dtb -nt "4-bit unsigned decimal -> binary" -mf2 id ar -mf1 id ar -io1; desc 2 -nn 7; desc 1 -tn 4 -nn 19 -sd n; data 2 -do -6 321 456 372 415 210 000 000; data 1 -do -1 067165145041 204206031146 063140; page -all; /* dtb16 * Indirect descriptors are used by both operands. * Address register modification is used by both operands. * Neither operand spans a page boundary. * Both operands begin in the middle of a page. */ inst dtb -nt "4-bit leading sign -> binary" -mf2 idb ar -mf1 idb ar; desc 2 -nn 8; desc 1 -tn 4 -nn 22 -sd l; data 2 -do 14 124 570 642 000 000 375 125 743; data 1 -do 100 307201125023162000051145 211040147000; page -all; /* btd1 * Indirect descriptors are used for both operands. * Address register modification is used for both operands. * The decimal operand is split across a page boundary. */ inst btd -nt "binary -> 9-bit unsigned decimal" -mf1 idb ar reg rl 1 -mf2 idb ar reg rl 2 -io 1; desc 2 -sd n; data 1 034; data 2 -do -1 "28"; page -all; /* btd2 * No indirect descriptors are used. * Address register modification is used for both operands. * Both operands cross a page boundary. */ inst btd -nt "binary -> 9-bit leading sign" -mf1 ar -mf2 ar; desc 1 -nn 2; desc 2 -nn 6 -sd l; data 1 -do -1 127 531; data 2 -do -3 "+44889"; page -all; /* btd3 * Indirect descriptors are used by both operands. * Address register modification is used for both operands. * Both operands cross a page boundary. */ inst btd -nt "binary -> 9-bit trailing sign" -mf1 ida ar -mf2 idb ar; desc 1 -nn 3; desc 2 -nn 9 -sd t; data 1 -do -2 211 664 372; data 2 -do -4 "36137210+"; page -all; /* btd4 * No indirect descriptors are used. * No address register modification is used. * The decimal operand is split across a page boundary. * Register length modification is used by both operands. */ inst btd -nt "binary -> 9-bit unsigned decimal" -mf1 rl 4 -mf2 rl 10; desc 2 -sd n; data 1 111 222 333 444; data 2 -do -8 "9836279588"; page -all; /* btd5 * Address register modification is used by both operands. * An indirect descriptor is used by the decimal operand. * Simple register modification is used by the binary operand. * Register length modification is used by both operands. */ inst btd -nt "binary -> 9-bit leading sign" -mf1 ar reg rl 5 -mf2 ar idr rl 15; desc 2 -sd l; data 1 -do -4 333 444 333 222 111; data 2 -do -12 "+15088814466121"; page -all; /* btd6 * Address register modification is used by both operands. * An indirect descriptor is used by the binary operand. * Neither operand crosses a page boundary. */ inst btd -nt "binary -> 9-bit trailing sign" -mf1 ar id -mf2 ar; desc 1 -nn 6; desc 2 -nn 17 -sd t; data 1 123 456 765 432 123 456; data 2 "2941123482396462+"; page -all; /* btd7 * Simple register modification is used by both operands. * An indirect descriptor is used by the decimal operand. * Both operands begin in the middle of a page. * Neither operand spans a page boundary. */ inst btd -nt "binary -> 9-bit unsigned decimal" -mf1 reg -mf2 reg id; desc 1 -nn 7; desc 2 -nn 19 -sd n; data 1 -do 80 321 456 372 415 210 000 000; data 2 -do 60 "3775652184861966336"; page -all; /* btd8 * Both operands use only simple register modification. * Neither operand spans a page boundary. * Both operands begin on the 1st byte of a page. */ inst btd -nt "binary -> 9-bit leading sign" -mf1 reg -mf2 reg; desc 1 -nn 8; desc 2 -nn 22 -sd l; data 1 124 570 642 000 000 375 125 743; data 2 "+781551372002965892067"; page -all; /* btd9 * An indirect descriptor is used by the binary operand. * Neither operand spans a page boundary. * Both operands begin on the 1st byte of a page. * The eis instruction itself spans a page boundary. * No modifications are made to the decimal operand. */ inst btd -nt "binary -> 4-bit unsigned decimal" -mf1 id -io 1; desc 1 -nn 1; desc 2 -tn 4 -nn 2 -sd n; data 1 034; data 2 050 000; page -all; /* btd10 * Address register modification is used for the binary operand. * No modifications are made to the decimal operand. * Both operands span a page boundary. */ inst btd -nt "binary to 4-bit leading sign" -mf1 ar -io 1; desc 1 -nn 2; desc 2 -tn 4 -nn 6 -sd l; data 1 -do -1 127 531; data 2 -do -4 304110211000 000000; page -all; /* btd11 * Address register modification is used for the decimal operand. * No modifications are made to the binary operand. * Only the decimal operand spans a page boundary. * The eis instruction itself spans a page boundary. */ inst btd -nt "binary -> 4-bit trailing sign" -mf2 ar -io2; desc 1 -nn 3; desc 2 -tn 4 -nn 9 -sd t; data 1 211 664 372; data 2 -do -8 066023162020 300000000000000; page -all; /* btd12 * Indirect descriptors are used for both operands. * No address register modification is used. * Neither operand spans a page boundary. * Both operands begin on the 1st byte of a page. * The eis instruction itself spans a page boundary. */ inst btd -nt "binary -> 4-bit unsigned decimal" -mf1 id -mf2 id -io 2; desc 1 -nn 4; desc 2 -tn 4 -nn 10 -sd n; data 1 111 222 333 444; data 2 230066047225 210000000000; page -all; /* btd13 * No modifications are made to the binary operand. * Address register modification is used for the decimal operand. * An indirect descriptor is used by the decimal operand. * Both operands span a page boundary. */ inst btd -nt "binary -> 4-bit leading sign" -mf2 ar id -io 1; desc 1 -nn 5; desc 2 -tn 4 -nn 15 -sd l; data 1 -do -4 333 444 333 222 111; data 2 -do -8 301120210201 104146022020; page -all; /* btd14 * Indirect descriptors are used by both operands. * Both operands span a page boundary. */ inst btd -nt "binary -> 4-bit trailing sign" -mf1 idr -mf2 ida; desc 1 -nn 6; desc 2 -tn 4 -nn 17 -sd t; data 1 -do -4 123 456 765 432 123 456; data 2 -do -16 051101022064 202071144142 300; page -all; /* btd15 * Indirect descriptors are used for both operands. * Address register modification is used for both operands. * Both operands span a page boundary. * The eis instruction itself spans a page boundary. */ inst btd -nt "binary -> 4-bit unsigned decimal" -mf1 id ar -mf2 id ar -io1; desc 1 -nn 7; desc 2 -tn 4 -nn 19 -sd n; data 1 -do -6 321 456 372 415 210 000 000; data 2 -do -1 067165145041 204206031146 063140; page -all; /* btd16 * Indirect descriptors are used by both operands. * Address register modification is used by both operands. * Neither operand spans a page boundary. * Both operands begin in the middle of a page. */ inst btd -nt "binary -> 4-bit leading sign" -mf1 idb ar -mf2 idb ar; desc 1 -nn 8; desc 2 -tn 4 -nn 22 -sd l; data 1 -do 14 124 570 642 000 000 375 125 743; data 2 -do 100 307201125023162000051145 211040147000; page -all; */ ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group Bull including Bull HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell Bull Inc., Groupe Bull and Bull HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, Bull or Bull HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by Bull HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved */