diff --git a/pdptests.py b/pdptests.py
index 678a771..815162a 100644
--- a/pdptests.py
+++ b/pdptests.py
@@ -710,6 +710,288 @@ class TestMethods(unittest.TestCase):
                 self.assertEqual(p.r[1], expected_R1)
             expected_R1 = (expected_R1 - 1) & 0o177777
 
+    def test_mul(self):
+        # huge table of data generated via SIMH
+        # each entry is X (16 bits), Y (16), X*Y (2 x 16 bits)
+        simhdata = [
+            0o177777, 0o177777, 0, 1, 0o177776, 0o177777, 0,
+            2, 0o177000, 0o177777, 0, 0o001000, 0o176543, 0o177777, 0,
+            0o001235, 0o105432, 0o177777, 0, 0o072346, 0o100420, 0o177777, 0,
+            0o077360, 0o100002, 0o177777, 0, 0o077776, 0o100001, 0o177777, 0,
+            0o077777, 0o100000, 0o177777, 0, 0o100000, 0o077777, 0o177777,
+            0o177777, 0o100001, 0o077776, 0o177777, 0o177777, 0o100002,
+            0o077775, 0o177777, 0o177777, 0o100003, 0o054321, 0o177777,
+            0o177777, 0o123457, 0o043210, 0o177777, 0o177777, 0o134570,
+            0o032412, 0o177777, 0o177777, 0o145366, 7, 0o177777, 0o177777,
+            0o177771, 6, 0o177777, 0o177777, 0o177772, 5, 0o177777, 0o177777,
+            0o177773, 4, 0o177777, 0o177777, 0o177774, 3, 0o177777, 0o177777,
+            0o177775, 2, 0o177777, 0o177777, 0o177776, 1, 0o177777, 0o177777,
+            0o177777, 0o177777, 0o177776, 0, 2, 0o177776, 0o177776, 0, 4,
+            0o177000, 0o177776, 0, 0o002000, 0o176543, 0o177776, 0, 0o002472,
+            0o105432, 0o177776, 0, 0o164714, 0o100420, 0o177776, 0, 0o176740,
+            0o100002, 0o177776, 0, 0o177774, 0o100001, 0o177776, 0, 0o177776,
+            0o100000, 0o177776, 1, 0, 0o077777, 0o177776, 0o177777, 2,
+            0o077776, 0o177776, 0o177777, 4, 0o077775, 0o177776, 0o177777, 6,
+            0o054321, 0o177776, 0o177777, 0o047136, 0o043210, 0o177776,
+            0o177777, 0o071360, 0o032412, 0o177776, 0o177777, 0o112754, 7,
+            0o177776, 0o177777, 0o177762, 6, 0o177776, 0o177777, 0o177764, 5,
+            0o177776, 0o177777, 0o177766, 4, 0o177776, 0o177777, 0o177770, 3,
+            0o177776, 0o177777, 0o177772, 2, 0o177776, 0o177777, 0o177774, 1,
+            0o177776, 0o177777, 0o177776, 0o177777, 0o177000, 0, 0o001000,
+            0o177776, 0o177000, 0, 0o002000, 0o177000, 0o177000, 4, 0,
+            0o176543, 0o177000, 5, 0o035000, 0o105432, 0o177000, 0o000351,
+            0o146000, 0o100420, 0o177000, 0o000375, 0o160000, 0o100002,
+            0o177000, 0o000377, 0o176000, 0o100001, 0o177000, 0o000377,
+            0o177000, 0o100000, 0o177000, 0o000400, 0, 0o077777, 0o177000,
+            0o177400, 0o001000, 0o077776, 0o177000, 0o177400, 0o002000,
+            0o077775, 0o177000, 0o177400, 0o003000, 0o054321, 0o177000,
+            0o177516, 0o057000, 0o043210, 0o177000, 0o177562, 0o170000,
+            0o032412, 0o177000, 0o177625, 0o166000, 7, 0o177000, 0o177777,
+            0o171000, 6, 0o177000, 0o177777, 0o172000, 5, 0o177000, 0o177777,
+            0o173000, 4, 0o177000, 0o177777, 0o174000, 3, 0o177000, 0o177777,
+            0o175000, 2, 0o177000, 0o177777, 0o176000, 1, 0o177000, 0o177777,
+            0o177000, 0o177777, 0o176543, 0, 0o001235, 0o177776, 0o176543, 0,
+            0o002472, 0o177000, 0o176543, 5, 0o035000, 0o176543, 0o176543, 6,
+            0o152111, 0o105432, 0o176543, 0o000461, 0o076416, 0o100420,
+            0o176543, 0o000513, 0o134460, 0o100002, 0o176543, 0o000516,
+            0o075306, 0o100001, 0o176543, 0o000516, 0o076543, 0o100000,
+            0o176543, 0o000516, 0o100000, 0o077777, 0o176543, 0o177261,
+            0o101235, 0o077776, 0o176543, 0o177261, 0o102472, 0o077775,
+            0o176543, 0o177261, 0o103727, 0o054321, 0o176543, 0o177427,
+            0o162723, 0o043210, 0o176543, 0o177507, 0o127230, 0o032412,
+            0o176543, 0o177565, 0o062336, 7, 0o176543, 0o177777, 0o166665, 6,
+            0o176543, 0o177777, 0o170122, 5, 0o176543, 0o177777, 0o171357, 4,
+            0o176543, 0o177777, 0o172614, 3, 0o176543, 0o177777, 0o174051, 2,
+            0o176543, 0o177777, 0o175306, 1, 0o176543, 0o177777, 0o176543,
+            0o177777, 0o105432, 0, 0o072346, 0o177776, 0o105432, 0, 0o164714,
+            0o177000, 0o105432, 0o000351, 0o146000, 0o176543, 0o105432,
+            0o000461, 0o076416, 0o105432, 0o105432, 0o032541, 0o037244,
+            0o100420, 0o105432, 0o034766, 0o145640, 0o100002, 0o105432,
+            0o035162, 0o013064, 0o100001, 0o105432, 0o035162, 0o105432,
+            0o100000, 0o105432, 0o035163, 0, 0o077777, 0o105432, 0o142615,
+            0o072346, 0o077776, 0o105432, 0o142615, 0o164714, 0o077775,
+            0o105432, 0o142616, 0o057262, 0o054321, 0o105432, 0o153561,
+            0o100072, 0o043210, 0o105432, 0o157713, 0o000720, 0o032412,
+            0o105432, 0o163707, 0o150404, 7, 0o105432, 0o177774, 0o146666, 6,
+            0o105432, 0o177775, 0o041234, 5, 0o105432, 0o177775, 0o133602, 4,
+            0o105432, 0o177776, 0o026150, 3, 0o105432, 0o177776, 0o120516, 2,
+            0o105432, 0o177777, 0o013064, 1, 0o105432, 0o177777, 0o105432,
+            0o177777, 0o100420, 0, 0o077360, 0o177776, 0o100420, 0, 0o176740,
+            0o177000, 0o100420, 0o000375, 0o160000, 0o176543, 0o100420,
+            0o000513, 0o134460, 0o105432, 0o100420, 0o034766, 0o145640,
+            0o100420, 0o100420, 0o037361, 0o020400, 0o100002, 0o100420,
+            0o037567, 0o001040, 0o100001, 0o100420, 0o037567, 0o100420,
+            0o100000, 0o100420, 0o037570, 0, 0o077777, 0o100420, 0o140210,
+            0o077360, 0o077776, 0o100420, 0o140210, 0o176740, 0o077775,
+            0o100420, 0o140211, 0o076320, 0o054321, 0o100420, 0o151765,
+            0o157020, 0o043210, 0o100420, 0o156406, 0o170200, 0o032412,
+            0o100420, 0o162663, 0o055240, 7, 0o100420, 0o177774, 0o103560, 6,
+            0o100420, 0o177775, 0o003140, 5, 0o100420, 0o177775, 0o102520, 4,
+            0o100420, 0o177776, 0o002100, 3, 0o100420, 0o177776, 0o101460, 2,
+            0o100420, 0o177777, 0o001040, 1, 0o100420, 0o177777, 0o100420,
+            0o177777, 0o100002, 0, 0o077776, 0o177776, 0o100002, 0, 0o177774,
+            0o177000, 0o100002, 0o000377, 0o176000, 0o176543, 0o100002,
+            0o000516, 0o075306, 0o105432, 0o100002, 0o035162, 0o013064,
+            0o100420, 0o100002, 0o037567, 0o001040, 0o100002, 0o100002,
+            0o037776, 4, 0o100001, 0o100002, 0o037776, 0o100002, 0o100000,
+            0o100002, 0o037777, 0, 0o077777, 0o100002, 0o140001, 0o077776,
+            0o077776, 0o100002, 0o140001, 0o177774, 0o077775, 0o100002,
+            0o140002, 0o077772, 0o054321, 0o100002, 0o151630, 0o030642,
+            0o043210, 0o100002, 0o156274, 0o106420, 0o032412, 0o100002,
+            0o162573, 0o065024, 7, 0o100002, 0o177774, 0o100016, 6, 0o100002,
+            0o177775, 0o000014, 5, 0o100002, 0o177775, 0o100012, 4, 0o100002,
+            0o177776, 0o000010, 3, 0o100002, 0o177776, 0o100006, 2, 0o100002,
+            0o177777, 4, 1, 0o100002, 0o177777, 0o100002, 0o177777, 0o100001,
+            0, 0o077777, 0o177776, 0o100001, 0, 0o177776, 0o177000, 0o100001,
+            0o000377, 0o177000, 0o176543, 0o100001, 0o000516, 0o076543,
+            0o105432, 0o100001, 0o035162, 0o105432, 0o100420, 0o100001,
+            0o037567, 0o100420, 0o100002, 0o100001, 0o037776, 0o100002,
+            0o100001, 0o100001, 0o037777, 1, 0o100000, 0o100001, 0o037777,
+            0o100000, 0o077777, 0o100001, 0o140000, 0o177777, 0o077776,
+            0o100001, 0o140001, 0o077776, 0o077775, 0o100001, 0o140001,
+            0o177775, 0o054321, 0o100001, 0o151627, 0o154321, 0o043210,
+            0o100001, 0o156274, 0o043210, 0o032412, 0o100001, 0o162573,
+            0o032412, 7, 0o100001, 0o177774, 0o100007, 6, 0o100001, 0o177775,
+            6, 5, 0o100001, 0o177775, 0o100005, 4, 0o100001, 0o177776, 4, 3,
+            0o100001, 0o177776, 0o100003, 2, 0o100001, 0o177777, 2, 1,
+            0o100001, 0o177777, 0o100001, 0o177777, 0o100000, 0, 0o100000,
+            0o177776, 0o100000, 1, 0, 0o177000, 0o100000, 0o000400, 0,
+            0o176543, 0o100000, 0o000516, 0o100000, 0o105432, 0o100000,
+            0o035163, 0, 0o100420, 0o100000, 0o037570, 0, 0o100002, 0o100000,
+            0o037777, 0, 0o100001, 0o100000, 0o037777, 0o100000, 0o100000,
+            0o100000, 0o040000, 0, 0o077777, 0o100000, 0o140000, 0o100000,
+            0o077776, 0o100000, 0o140001, 0, 0o077775, 0o100000, 0o140001,
+            0o100000, 0o054321, 0o100000, 0o151627, 0o100000, 0o043210,
+            0o100000, 0o156274, 0, 0o032412, 0o100000, 0o162573, 0, 7,
+            0o100000, 0o177774, 0o100000, 6, 0o100000, 0o177775, 0, 5,
+            0o100000, 0o177775, 0o100000, 4, 0o100000, 0o177776, 0, 3,
+            0o100000, 0o177776, 0o100000, 2, 0o100000, 0o177777, 0, 1,
+            0o100000, 0o177777, 0o100000, 0o177777, 0o077777, 0o177777,
+            0o100001, 0o177776, 0o077777, 0o177777, 2, 0o177000, 0o077777,
+            0o177400, 0o001000, 0o176543, 0o077777, 0o177261, 0o101235,
+            0o105432, 0o077777, 0o142615, 0o072346, 0o100420, 0o077777,
+            0o140210, 0o077360, 0o100002, 0o077777, 0o140001, 0o077776,
+            0o100001, 0o077777, 0o140000, 0o177777, 0o100000, 0o077777,
+            0o140000, 0o100000, 0o077777, 0o077777, 0o037777, 1, 0o077776,
+            0o077777, 0o037776, 0o100002, 0o077775, 0o077777, 0o037776, 3,
+            0o054321, 0o077777, 0o026150, 0o023457, 0o043210, 0o077777,
+            0o021503, 0o134570, 0o032412, 0o077777, 0o015204, 0o145366, 7,
+            0o077777, 3, 0o077771, 6, 0o077777, 2, 0o177772, 5, 0o077777, 2,
+            0o077773, 4, 0o077777, 1, 0o177774, 3, 0o077777, 1, 0o077775, 2,
+            0o077777, 0, 0o177776, 1, 0o077777, 0, 0o077777, 0o177777,
+            0o077776, 0o177777, 0o100002, 0o177776, 0o077776, 0o177777, 4,
+            0o177000, 0o077776, 0o177400, 0o002000, 0o176543, 0o077776,
+            0o177261, 0o102472, 0o105432, 0o077776, 0o142615, 0o164714,
+            0o100420, 0o077776, 0o140210, 0o176740, 0o100002, 0o077776,
+            0o140001, 0o177774, 0o100001, 0o077776, 0o140001, 0o077776,
+            0o100000, 0o077776, 0o140001, 0, 0o077777, 0o077776, 0o037776,
+            0o100002, 0o077776, 0o077776, 0o037776, 4, 0o077775, 0o077776,
+            0o037775, 0o100006, 0o054321, 0o077776, 0o026147, 0o147136,
+            0o043210, 0o077776, 0o021503, 0o071360, 0o032412, 0o077776,
+            0o015204, 0o112754, 7, 0o077776, 3, 0o077762, 6, 0o077776, 2,
+            0o177764, 5, 0o077776, 2, 0o077766, 4, 0o077776, 1, 0o177770, 3,
+            0o077776, 1, 0o077772, 2, 0o077776, 0, 0o177774, 1, 0o077776, 0,
+            0o077776, 0o177777, 0o077775, 0o177777, 0o100003, 0o177776,
+            0o077775, 0o177777, 6, 0o177000, 0o077775, 0o177400, 0o003000,
+            0o176543, 0o077775, 0o177261, 0o103727, 0o105432, 0o077775,
+            0o142616, 0o057262, 0o100420, 0o077775, 0o140211, 0o076320,
+            0o100002, 0o077775, 0o140002, 0o077772, 0o100001, 0o077775,
+            0o140001, 0o177775, 0o100000, 0o077775, 0o140001, 0o100000,
+            0o077777, 0o077775, 0o037776, 3, 0o077776, 0o077775, 0o037775,
+            0o100006, 0o077775, 0o077775, 0o037775, 0o000011, 0o054321,
+            0o077775, 0o026147, 0o072615, 0o043210, 0o077775, 0o021503,
+            0o026150, 0o032412, 0o077775, 0o015204, 0o060342, 7, 0o077775, 3,
+            0o077753, 6, 0o077775, 2, 0o177756, 5, 0o077775, 2, 0o077761, 4,
+            0o077775, 1, 0o177764, 3, 0o077775, 1, 0o077767, 2, 0o077775, 0,
+            0o177772, 1, 0o077775, 0, 0o077775, 0o177777, 0o054321, 0o177777,
+            0o123457, 0o177776, 0o054321, 0o177777, 0o047136, 0o177000,
+            0o054321, 0o177516, 0o057000, 0o176543, 0o054321, 0o177427,
+            0o162723, 0o105432, 0o054321, 0o153561, 0o100072, 0o100420,
+            0o054321, 0o151765, 0o157020, 0o100002, 0o054321, 0o151630,
+            0o030642, 0o100001, 0o054321, 0o151627, 0o154321, 0o100000,
+            0o054321, 0o151627, 0o100000, 0o077777, 0o054321, 0o026150,
+            0o023457, 0o077776, 0o054321, 0o026147, 0o147136, 0o077775,
+            0o054321, 0o026147, 0o072615, 0o054321, 0o054321, 0o017320,
+            0o055241, 0o043210, 0o054321, 0o014170, 0o052410, 0o032412,
+            0o054321, 0o011146, 0o136452, 7, 0o054321, 2, 0o066667, 6,
+            0o054321, 2, 0o012346, 5, 0o054321, 1, 0o136025, 4, 0o054321, 1,
+            0o061504, 3, 0o054321, 1, 0o005163, 2, 0o054321, 0, 0o130642, 1,
+            0o054321, 0, 0o054321, 0o177777, 0o043210, 0o177777, 0o134570,
+            0o177776, 0o043210, 0o177777, 0o071360, 0o177000, 0o043210,
+            0o177562, 0o170000, 0o176543, 0o043210, 0o177507, 0o127230,
+            0o105432, 0o043210, 0o157713, 0o000720, 0o100420, 0o043210,
+            0o156406, 0o170200, 0o100002, 0o043210, 0o156274, 0o106420,
+            0o100001, 0o043210, 0o156274, 0o043210, 0o100000, 0o043210,
+            0o156274, 0, 0o077777, 0o043210, 0o021503, 0o134570, 0o077776,
+            0o043210, 0o021503, 0o071360, 0o077775, 0o043210, 0o021503,
+            0o026150, 0o054321, 0o043210, 0o014170, 0o052410, 0o043210,
+            0o043210, 0o011556, 0o124100, 0o032412, 0o043210, 0o007234,
+            0o164520, 7, 0o043210, 1, 0o166670, 6, 0o043210, 1, 0o123460, 5,
+            0o043210, 1, 0o060250, 4, 0o043210, 1, 0o015040, 3, 0o043210, 0,
+            0o151630, 2, 0o043210, 0, 0o106420, 1, 0o043210, 0, 0o043210,
+            0o177777, 0o032412, 0o177777, 0o145366, 0o177776, 0o032412,
+            0o177777, 0o112754, 0o177000, 0o032412, 0o177625, 0o166000,
+            0o176543, 0o032412, 0o177565, 0o062336, 0o105432, 0o032412,
+            0o163707, 0o150404, 0o100420, 0o032412, 0o162663, 0o055240,
+            0o100002, 0o032412, 0o162573, 0o065024, 0o100001, 0o032412,
+            0o162573, 0o032412, 0o100000, 0o032412, 0o162573, 0, 0o077777,
+            0o032412, 0o015204, 0o145366, 0o077776, 0o032412, 0o015204,
+            0o112754, 0o077775, 0o032412, 0o015204, 0o060342, 0o054321,
+            0o032412, 0o011146, 0o136452, 0o043210, 0o032412, 0o007234,
+            0o164520, 0o032412, 0o032412, 0o005375, 0o022144, 7, 0o032412, 1,
+            0o071506, 6, 0o032412, 1, 0o037074, 5, 0o032412, 1, 0o004462, 4,
+            0o032412, 0, 0o152050, 3, 0o032412, 0, 0o117436, 2, 0o032412, 0,
+            0o065024, 1, 0o032412, 0, 0o032412, 0o177777, 7, 0o177777,
+            0o177771, 0o177776, 7, 0o177777, 0o177762, 0o177000, 7, 0o177777,
+            0o171000, 0o176543, 7, 0o177777, 0o166665, 0o105432, 7, 0o177774,
+            0o146666, 0o100420, 7, 0o177774, 0o103560, 0o100002, 7, 0o177774,
+            0o100016, 0o100001, 7, 0o177774, 0o100007, 0o100000, 7, 0o177774,
+            0o100000, 0o077777, 7, 3, 0o077771, 0o077776, 7, 3, 0o077762,
+            0o077775, 7, 3, 0o077753, 0o054321, 7, 2, 0o066667, 0o043210, 7,
+            1, 0o166670, 0o032412, 7, 1, 0o071506, 7, 7, 0, 0o000061, 6, 7, 0,
+            0o000052, 5, 7, 0, 0o000043, 4, 7, 0, 0o000034, 3, 7, 0, 0o000025,
+            2, 7, 0, 0o000016, 1, 7, 0, 7, 0o177777, 6, 0o177777, 0o177772,
+            0o177776, 6, 0o177777, 0o177764, 0o177000, 6, 0o177777, 0o172000,
+            0o176543, 6, 0o177777, 0o170122, 0o105432, 6, 0o177775, 0o041234,
+            0o100420, 6, 0o177775, 0o003140, 0o100002, 6, 0o177775, 0o000014,
+            0o100001, 6, 0o177775, 6, 0o100000, 6, 0o177775, 0, 0o077777, 6,
+            2, 0o177772, 0o077776, 6, 2, 0o177764, 0o077775, 6, 2, 0o177756,
+            0o054321, 6, 2, 0o012346, 0o043210, 6, 1, 0o123460, 0o032412, 6,
+            1, 0o037074, 7, 6, 0, 0o000052, 6, 6, 0, 0o000044, 5, 6, 0,
+            0o000036, 4, 6, 0, 0o000030, 3, 6, 0, 0o000022, 2, 6, 0, 0o000014,
+            1, 6, 0, 6, 0o177777, 5, 0o177777, 0o177773, 0o177776, 5,
+            0o177777, 0o177766, 0o177000, 5, 0o177777, 0o173000, 0o176543, 5,
+            0o177777, 0o171357, 0o105432, 5, 0o177775, 0o133602, 0o100420, 5,
+            0o177775, 0o102520, 0o100002, 5, 0o177775, 0o100012, 0o100001, 5,
+            0o177775, 0o100005, 0o100000, 5, 0o177775, 0o100000, 0o077777, 5,
+            2, 0o077773, 0o077776, 5, 2, 0o077766, 0o077775, 5, 2, 0o077761,
+            0o054321, 5, 1, 0o136025, 0o043210, 5, 1, 0o060250, 0o032412, 5,
+            1, 0o004462, 7, 5, 0, 0o000043, 6, 5, 0, 0o000036, 5, 5, 0,
+            0o000031, 4, 5, 0, 0o000024, 3, 5, 0, 0o000017, 2, 5, 0, 0o000012,
+            1, 5, 0, 5, 0o177777, 4, 0o177777, 0o177774, 0o177776, 4,
+            0o177777, 0o177770, 0o177000, 4, 0o177777, 0o174000, 0o176543, 4,
+            0o177777, 0o172614, 0o105432, 4, 0o177776, 0o026150, 0o100420, 4,
+            0o177776, 0o002100, 0o100002, 4, 0o177776, 0o000010, 0o100001, 4,
+            0o177776, 4, 0o100000, 4, 0o177776, 0, 0o077777, 4, 1, 0o177774,
+            0o077776, 4, 1, 0o177770, 0o077775, 4, 1, 0o177764, 0o054321, 4,
+            1, 0o061504, 0o043210, 4, 1, 0o015040, 0o032412, 4, 0, 0o152050,
+            7, 4, 0, 0o000034, 6, 4, 0, 0o000030, 5, 4, 0, 0o000024, 4, 4, 0,
+            0o000020, 3, 4, 0, 0o000014, 2, 4, 0, 0o000010, 1, 4, 0, 4,
+            0o177777, 3, 0o177777, 0o177775, 0o177776, 3, 0o177777, 0o177772,
+            0o177000, 3, 0o177777, 0o175000, 0o176543, 3, 0o177777, 0o174051,
+            0o105432, 3, 0o177776, 0o120516, 0o100420, 3, 0o177776, 0o101460,
+            0o100002, 3, 0o177776, 0o100006, 0o100001, 3, 0o177776, 0o100003,
+            0o100000, 3, 0o177776, 0o100000, 0o077777, 3, 1, 0o077775,
+            0o077776, 3, 1, 0o077772, 0o077775, 3, 1, 0o077767, 0o054321, 3,
+            1, 0o005163, 0o043210, 3, 0, 0o151630, 0o032412, 3, 0, 0o117436,
+            7, 3, 0, 0o000025, 6, 3, 0, 0o000022, 5, 3, 0, 0o000017, 4, 3, 0,
+            0o000014, 3, 3, 0, 0o000011, 2, 3, 0, 6, 1, 3, 0, 3, 0o177777, 2,
+            0o177777, 0o177776, 0o177776, 2, 0o177777, 0o177774, 0o177000, 2,
+            0o177777, 0o176000, 0o176543, 2, 0o177777, 0o175306, 0o105432, 2,
+            0o177777, 0o013064, 0o100420, 2, 0o177777, 0o001040, 0o100002, 2,
+            0o177777, 4, 0o100001, 2, 0o177777, 2, 0o100000, 2, 0o177777, 0,
+            0o077777, 2, 0, 0o177776, 0o077776, 2, 0, 0o177774, 0o077775, 2,
+            0, 0o177772, 0o054321, 2, 0, 0o130642, 0o043210, 2, 0, 0o106420,
+            0o032412, 2, 0, 0o065024, 7, 2, 0, 0o000016, 6, 2, 0, 0o000014, 5,
+            2, 0, 0o000012, 4, 2, 0, 0o000010, 3, 2, 0, 6, 2, 2, 0, 4, 1, 2,
+            0, 2, 0o177777, 1, 0o177777, 0o177777, 0o177776, 1, 0o177777,
+            0o177776, 0o177000, 1, 0o177777, 0o177000, 0o176543, 1, 0o177777,
+            0o176543, 0o105432, 1, 0o177777, 0o105432, 0o100420, 1, 0o177777,
+            0o100420, 0o100002, 1, 0o177777, 0o100002, 0o100001, 1, 0o177777,
+            0o100001, 0o100000, 1, 0o177777, 0o100000, 0o077777, 1, 0,
+            0o077777, 0o077776, 1, 0, 0o077776, 0o077775, 1, 0, 0o077775,
+            0o054321, 1, 0, 0o054321, 0o043210, 1, 0, 0o043210, 0o032412, 1,
+            0, 0o032412, 7, 1, 0, 7, 6, 1, 0, 6, 5, 1, 0, 5, 4, 1, 0, 4, 3, 1,
+            0, 3, 2, 1, 0, 2, 1, 1, 0, 1, 0
+        ]
+
+        a = InstructionBlock()
+        # get data from simhdata and runs R0:R1 = X*Y; compares results
+        a.mov(0o40000, 'sp')       # just make sure there's a stack, not used
+        a.mov(0o20000, 'r3')       # simhdata at 020000
+        a.label('loop')
+        a.mov('(r3)+', 'r0')       # load X
+        a.beq('done')              # zero is the end sentinel
+        # a.mul('(r3)+', 'r0')       # R0:R1 = X*Y
+        a.literal(0o070023)
+        a.cmp('(r3)+', 'r0')       # check high order
+        a.bne('fail')
+        a.cmp('(r3)+', 'r1')       # check low order
+        a.bne('fail')
+        a.br('loop')
+        a.label('done')
+        a.clr('r3')                # r3 being zero indicates success
+        a.halt()
+        a.label('fail')
+        a.halt()                   # r3 points after miscompare
+
+        p = self.make_pdp()
+        instloc = 0o10000
+        self.loadphysmem(p, a, instloc)
+        self.loadphysmem(p, simhdata, 0o20000)
+        p.run(pc=instloc)
+        self.assertEqual(p.r[3], 0)
+
     def test_div(self):
         # test the div instruction
         # The 32-bit int in R and R|1 is divided by the src operand