From 0441d28435e8db1d60c1ae30c81e3a54f12149c8 Mon Sep 17 00:00:00 2001 From: pacien Date: Wed, 28 Mar 2018 17:02:43 +0200 Subject: Adapt for fixed specs --- mem.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'mem.py') diff --git a/mem.py b/mem.py index 7137ede..c83d69d 100644 --- a/mem.py +++ b/mem.py @@ -8,6 +8,7 @@ class Memory: def __init__(self, main_size, virt_size): self.main = [None] * main_size self.virt = [None] * virt_size + self._virt_cursor = 0 def _mem_to_string(self, mem): return ''.join(['%d' % n if n is not None else 'x' for n in mem]) @@ -18,6 +19,18 @@ class Memory: def dump_virt(self): return self._mem_to_string(self.virt) - def has_page(self, page): - return 0 <= page < len(self.virt) + def page_in_range(self, page): + return 0 <= page < len(self.main + self.virt) + + def put_virt(self, page): + self.virt[self._virt_cursor] = page + self._virt_cursor += 1 + + def remove_virt(self, page): + for i in range(len(self.virt)): + if self.virt[i] == page: + self._virt_cursor -= 1 + self.virt[i] = self.virt[self._virt_cursor] + self.virt[self._virt_cursor] = None + break -- cgit v1.2.3