1#!perl -w
2
3use strict;
4no strict "vars";
5
6use Bit::ShiftReg qw(:all);
7
8# ======================================================================
9#   $carry = ROL_int($value);
10#   $carry = ROR_int($value);
11#   $carry = SHL_int($value,$carry);
12#   $carry = SHR_int($value,$carry);
13# ======================================================================
14
15print "1..38\n";
16
17$n = 1;
18$value = hex("1E");
19if (ROL_int($value) == 0)
20{print "ok $n\n";} else {print "not ok $n\n";}
21$n++;
22if ($value == hex("3C"))
23{print "ok $n\n";} else {print "not ok $n\n";}
24$n++;
25
26$value = -1;
27if (ROL_int($value) == 1)
28{print "ok $n\n";} else {print "not ok $n\n";}
29$n++;
30if ($value != 0)
31{print "ok $n\n";} else {print "not ok $n\n";}
32$n++;
33
34$value = hex("5A");
35if (ROR_int($value) == 0)
36{print "ok $n\n";} else {print "not ok $n\n";}
37$n++;
38if ($value == hex("2D"))
39{print "ok $n\n";} else {print "not ok $n\n";}
40$n++;
41
42$value = hex("55");
43if (ROR_int($value) == 1)
44{print "ok $n\n";} else {print "not ok $n\n";}
45$n++;
46if ($value != 0)
47{print "ok $n\n";} else {print "not ok $n\n";}
48$n++;
49if (LSB_int($value) == 0)
50{print "ok $n\n";} else {print "not ok $n\n";}
51$n++;
52if (MSB_int($value) == 1)
53{print "ok $n\n";} else {print "not ok $n\n";}
54$n++;
55
56$value = -1;
57if (ROR_int($value) == 1)
58{print "ok $n\n";} else {print "not ok $n\n";}
59$n++;
60if ($value != 0)
61{print "ok $n\n";} else {print "not ok $n\n";}
62$n++;
63
64$value = hex("1E");
65if (SHL_int($value,0) == 0)
66{print "ok $n\n";} else {print "not ok $n\n";}
67$n++;
68if ($value == hex("3C"))
69{print "ok $n\n";} else {print "not ok $n\n";}
70$n++;
71
72$value = hex("1E");
73if (SHL_int($value,1) == 0)
74{print "ok $n\n";} else {print "not ok $n\n";}
75$n++;
76if ($value == hex("3D"))
77{print "ok $n\n";} else {print "not ok $n\n";}
78$n++;
79
80$value = -1;
81if (SHL_int($value,0) == 1)
82{print "ok $n\n";} else {print "not ok $n\n";}
83$n++;
84if ($value != 0)
85{print "ok $n\n";} else {print "not ok $n\n";}
86$n++;
87if (LSB_int($value) == 0)
88{print "ok $n\n";} else {print "not ok $n\n";}
89$n++;
90if (MSB_int($value) == 1)
91{print "ok $n\n";} else {print "not ok $n\n";}
92$n++;
93
94$value = -1;
95if (SHL_int($value,1) == 1)
96{print "ok $n\n";} else {print "not ok $n\n";}
97$n++;
98if ($value != 0)
99{print "ok $n\n";} else {print "not ok $n\n";}
100$n++;
101if (LSB_int($value) == 1)
102{print "ok $n\n";} else {print "not ok $n\n";}
103$n++;
104if (MSB_int($value) == 1)
105{print "ok $n\n";} else {print "not ok $n\n";}
106$n++;
107
108$value = hex("5A");
109if (SHR_int($value,0) == 0)
110{print "ok $n\n";} else {print "not ok $n\n";}
111$n++;
112if ($value == hex("2D"))
113{print "ok $n\n";} else {print "not ok $n\n";}
114$n++;
115
116$value = hex("55");
117if (SHR_int($value,1) == 1)
118{print "ok $n\n";} else {print "not ok $n\n";}
119$n++;
120if ($value != 0)
121{print "ok $n\n";} else {print "not ok $n\n";}
122$n++;
123if (LSB_int($value) == 0)
124{print "ok $n\n";} else {print "not ok $n\n";}
125$n++;
126if (MSB_int($value) == 1)
127{print "ok $n\n";} else {print "not ok $n\n";}
128$n++;
129
130$value = -1;
131if (SHR_int($value,0) == 1)
132{print "ok $n\n";} else {print "not ok $n\n";}
133$n++;
134if ($value != 0)
135{print "ok $n\n";} else {print "not ok $n\n";}
136$n++;
137if (LSB_int($value) == 1)
138{print "ok $n\n";} else {print "not ok $n\n";}
139$n++;
140if (MSB_int($value) == 0)
141{print "ok $n\n";} else {print "not ok $n\n";}
142$n++;
143
144$value = -1;
145if (SHR_int($value,1) == 1)
146{print "ok $n\n";} else {print "not ok $n\n";}
147$n++;
148if ($value != 0)
149{print "ok $n\n";} else {print "not ok $n\n";}
150$n++;
151if (LSB_int($value) == 1)
152{print "ok $n\n";} else {print "not ok $n\n";}
153$n++;
154if (MSB_int($value) == 1)
155{print "ok $n\n";} else {print "not ok $n\n";}
156$n++;
157
158__END__
159
160