From 3e2e62d3966f4620674e51a424c7c2e734e05235 Mon Sep 17 00:00:00 2001 From: Ian C Date: Wed, 6 Sep 2006 23:35:58 +0000 Subject: Updated to use a function-based memory interface. --- z80.h | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'z80.h') diff --git a/z80.h b/z80.h index b6dd902..0b7424b 100644 --- a/z80.h +++ b/z80.h @@ -56,14 +56,10 @@ typedef signed char Z80Relative; typedef unsigned short Z80Word; -/* Memory +/* Interfaces used to handle memory */ -typedef Z80Byte Z80Memory[0x10000]; - - -/* Memory control - a TRUE indicates that the 256-byte page is writeable. -*/ -typedef int Z80MemoryControl[256]; +typedef Z80Byte (*Z80ReadMemory)(Z80 *cpu, Z80Word address); +typedef void (*Z80WriteMemory)(Z80 *cpu, Z80Word address, Z80Byte value); /* Interfaces needed to handle ports (IN/OUT commands) @@ -161,10 +157,11 @@ typedef struct /* Initialises the processor. */ -Z80 *Z80Init(Z80Memory memory, - Z80MemoryControl memcontrol, +Z80 *Z80Init(Z80ReadMemory read_memory, + Z80WriteMemory write_memory, + Z80ReadPort read_port, Z80WritePort write_port, - Z80ReadPort read_port); + Z80ReadMemory read_for_disassem); /* Resets the processor. @@ -238,7 +235,8 @@ void Z80SetState(Z80 *cpu, const Z80State *state); void Z80SetLabels(Z80Label labels[]); -/* Simple disassembly. addr is updated on exit. +/* Simple disassembly of memory accessed through read_for_disassem. + addr is updated on exit. */ const char *Z80Disassemble(Z80 *cpu, Z80Word *addr); -- cgit v1.2.3