summaryrefslogtreecommitdiff
path: root/emu/6502.c
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2020-11-27 20:04:18 +0100
committerAndreas Baumann <mail@andreasbaumann.cc>2020-11-27 20:04:18 +0100
commitf829f6893d94ed52044bf007bc447526c9d5e653 (patch)
treec1c98d8b9240b4507719aa8b78eb3ee03dd64ab5 /emu/6502.c
parent3d77f3f5ad41e931117425f58c74f49c9503bf7b (diff)
download6502-f829f6893d94ed52044bf007bc447526c9d5e653.tar.gz
6502-f829f6893d94ed52044bf007bc447526c9d5e653.tar.bz2
emulator uses a bus now in the cpu, ROM, RAM and VIA (7-seg) are devices connected to the bus
Diffstat (limited to 'emu/6502.c')
-rw-r--r--emu/6502.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/emu/6502.c b/emu/6502.c
index ce1f0d3..dbdf5a1 100644
--- a/emu/6502.c
+++ b/emu/6502.c
@@ -8,9 +8,9 @@ static const uint16_t reset_vector = 0xFFFC;
static const uint16_t ZP_base = 0x0;
static const uint16_t SP_base = 0x100;
-void cpu_6502_init( cpu_6502_t *cpu, struct memory_t *memory )
+void cpu_6502_init( cpu_6502_t *cpu, bus_t *bus )
{
- cpu->memory = memory;
+ cpu->bus = bus;
cpu->debug_flags = 0;
}
@@ -62,18 +62,18 @@ void cpu_6502_reset( cpu_6502_t *cpu )
uint8_t cpu_6502_read_byte( cpu_6502_t *cpu, uint16_t addr )
{
- return cpu->memory->read( cpu->memory, addr );
+ return cpu->bus->base.vtable->read( cpu->bus, addr );
}
void cpu_6502_write_byte( cpu_6502_t *cpu, uint16_t addr, uint8_t data )
{
- cpu->memory->write( cpu->memory, addr, data );
+ cpu->bus->base.vtable->write( cpu->bus, addr, data );
}
void cpu_6502_write_word( cpu_6502_t *cpu, uint16_t addr, uint16_t data )
{
- cpu->memory->write( cpu->memory, addr, ( data && 0x00FF ) );
- cpu->memory->write( cpu->memory, addr + 1, ( data && 0x00FF ) );
+ cpu->bus->base.vtable->write( cpu->bus, addr, ( data && 0x00FF ) );
+ cpu->bus->base.vtable->write( cpu->bus, addr + 1, ( data && 0x00FF ) );
}
void cpu_6502_run( cpu_6502_t *cpu, int steps )