From 42c5b6fc5b036ed7788a4add6106d74df3ccc650 Mon Sep 17 00:00:00 2001 From: Mike Naberezny Date: Sat, 26 Oct 2013 16:32:09 -0700 Subject: [PATCH] Support slices in __setitem__ and __getitem__ for Python 3 --- py65/memory.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/py65/memory.py b/py65/memory.py index f8a5f9d..0f0f3d8 100644 --- a/py65/memory.py +++ b/py65/memory.py @@ -16,6 +16,12 @@ class ObservableMemory: self._write_subscribers = defaultdict(list) def __setitem__(self, address, value): + if isinstance(address, slice): + r = range(*address.indices(self.physMask + 1)) + for n, v in zip(r, value): + self[n] = v + return + address &= self.physMask callbacks = self._write_subscribers[address] @@ -27,6 +33,10 @@ class ObservableMemory: self._subject[address] = value def __getitem__(self, address): + if isinstance(address, slice): + r = range(*address.indices(self.physMask + 1)) + return [ self[n] for n in r ] + address &= self.physMask callbacks = self._read_subscribers[address] final_result = None