From 7617579031be64af2232249833057903e50e2545 Mon Sep 17 00:00:00 2001 From: Neil Webber Date: Fri, 29 Mar 2024 08:52:31 -0500 Subject: [PATCH] test @(Rn)+ and @-(Rn) --- pdptests.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/pdptests.py b/pdptests.py index 5773a34..ed5a1cf 100644 --- a/pdptests.py +++ b/pdptests.py @@ -430,6 +430,40 @@ class TestMethods(unittest.TestCase): p.run(pc=instloc) self.assertEqual(p.r[0], 65534) + def test_mode3(self): + # @(Rn)+ mode + instloc = 0o4000 + ptrloc = 0o020000 + dataloc = 0o030000 + bval = 0o42 + a = InstructionBlock() + a.mov(ptrloc, 'r0') + a.mov(dataloc, a.ptr(ptrloc)) + a.movb(bval, '@(r0)+') + a.halt() + p = self.make_pdp() + self.loadphysmem(p, a, instloc) + p.run(pc=instloc) + self.assertEqual(p.physmem[dataloc >> 1], bval) + self.assertEqual(p.r[0], ptrloc+2) + + def test_mode5(self): + # @-(Rn) mode + instloc = 0o4000 + ptrloc = 0o020000 + dataloc = 0o030000 + bval = 0o42 + a = InstructionBlock() + a.mov(ptrloc+2, 'r0') # +2 because pre-decrement + a.mov(dataloc, a.ptr(ptrloc)) + a.movb(bval, '@-(r0)') + a.halt() + p = self.make_pdp() + self.loadphysmem(p, a, instloc) + p.run(pc=instloc) + self.assertEqual(p.physmem[dataloc >> 1], bval) + self.assertEqual(p.r[0], ptrloc) + def test_unscc(self): # more stuff like test_cc but specifically testing unsigned Bxx codes p = self.make_pdp()