From 56e82f7cb66c7b855497217027cd1397b2d2d470 Mon Sep 17 00:00:00 2001 From: Greg Hewgill Date: Sun, 7 Aug 2011 21:29:24 +1200 Subject: [PATCH] don't allow writes to ROM area (this caused the ][+ ROM to hang on boot) --- applepy.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/applepy.py b/applepy.py index 6f1efa1..8b53e1b 100644 --- a/applepy.py +++ b/applepy.py @@ -30,11 +30,15 @@ class Memory: if address == 0xC010: self.__mem[0xC000] = self.__mem[0xC000] & 0x7F # clear keyboard return self.__mem[address] + + def write_byte_io(self, address, value): + self.__mem[address] = value def write_byte(self, address, value): if 0x400 <= address < 0x800: self.write_screen(address, value) - self.__mem[address] = value + if address < 0xC000: + self.__mem[address] = value def read_word(self, address): return self.read_byte(address) + (self.read_byte(address + 1) << 8) @@ -298,7 +302,7 @@ class CPU: elif key == 0x7F: key = 0x8 # win.addstr(15, 50, hex(key)) - self.memory.write_byte(0xC000, 0x80 + key) + self.memory.write_byte_io(0xC000, 0x80 + key) except curses.error: pass except TypeError: