diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2020-11-27 20:04:18 +0100 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2020-11-27 20:04:18 +0100 |
commit | f829f6893d94ed52044bf007bc447526c9d5e653 (patch) | |
tree | c1c98d8b9240b4507719aa8b78eb3ee03dd64ab5 /emu/6502.c | |
parent | 3d77f3f5ad41e931117425f58c74f49c9503bf7b (diff) | |
download | 6502-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.c | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -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 ) |