aboutsummaryrefslogtreecommitdiffstats
path: root/atk16_emu
diff options
context:
space:
mode:
Diffstat (limited to 'atk16_emu')
-rw-r--r--atk16_emu/emu.py8
-rw-r--r--atk16_emu/peripherals.py10
2 files changed, 15 insertions, 3 deletions
diff --git a/atk16_emu/emu.py b/atk16_emu/emu.py
index 67f63f1..b3a3500 100644
--- a/atk16_emu/emu.py
+++ b/atk16_emu/emu.py
@@ -208,6 +208,8 @@ class Machine:
else:
if addr == 0xE7F1:
return self.peripherals.keyboard.read()
+ elif 0xF800 <= addr <= 0xFFFF:
+ return self.peripherals.graphics.read(addr)
else:
return self.ram.read(addr & 0x7FFF)
@@ -453,9 +455,9 @@ class Machine:
reg_hex = C.OKBLUE + f"0x{value:>04x}" + C.ENDC
print(f"{reg_name.upper()}: {reg_hex} ({value})")
- for i in range(8):
- ram_hex = C.OKBLUE + f"0x{self.ram.read(i):>04x}" + C.ENDC
- print(f"RAM[{i}]: {ram_hex} ({self.ram.read(i)})")
+ # for i in range(8):
+ # ram_hex = C.OKBLUE + f"0x{self.ram.read(i):>04x}" + C.ENDC
+ # print(f"RAM[{i}]: {ram_hex} ({self.ram.read(i)})")
def as_num(b: bool) -> str:
return ((C.OKGREEN + "1") if b else (C.WARNING + "0")) + C.ENDC
diff --git a/atk16_emu/peripherals.py b/atk16_emu/peripherals.py
index b8a5b14..3bc0443 100644
--- a/atk16_emu/peripherals.py
+++ b/atk16_emu/peripherals.py
@@ -72,6 +72,9 @@ class TPU:
# address: 5 bits y, 6 bits x
self.text_mem.write(addr, char & 0xFF)
+ def read_char(self, addr: int) -> int:
+ return self.text_mem.read(addr)
+
class Graphics:
def __init__(self):
pygame.display.init()
@@ -111,6 +114,9 @@ class Graphics:
# take only the lower 11 bits
self.tpu.write_char(addr & 0x7FF, char)
+ def read(self, addr: int) -> int:
+ return self.tpu.read_char(addr & 0x7FF)
+
class DummyGraphics:
def __init__(self):
pass
@@ -130,6 +136,10 @@ class DummyGraphics:
def write(self, addr: int, char: int):
pass
+ def read(self, addr: int) -> int:
+ print("warning: reading from dummy graphics")
+ return 0
+
class Keyboard:
def __init__(self, set_irq_line: Callable[[int], None]):
# mimic electronic behaviour my assigning a random value at start