Ver código fonte

Fix polled-memory mode

master
Nathaniel Walizer 1 ano atrás
pai
commit
a695312647
1 arquivos alterados com 9 adições e 5 exclusões
  1. +9
    -5
      e6502.c

+ 9
- 5
e6502.c Ver arquivo

@@ -22,25 +22,25 @@ static inline e6502_Mem_Addr e6502_adr_mem(e6502_Core* core,

static inline uint8_t e6502_adr_r8(e6502_Core* core,
e6502_Address adr) {
return &adr[0];
return adr[0];
}

static inline uint8_t e6502_adr_r16(e6502_Core* core,
e6502_Address adr) {
return (&adr[0] | ((uint16_t)&adr[1] << 8));
return (adr[0] | ((uint16_t)adr[1] << 8));
}

static inline void e6502_adr_w8(e6502_Core* core,
e6502_Address adr,
uint8_t val) {
&adr[0] = val;
adr[0] = val;
}

static inline void e6502_adr_w16(e6502_Core* core,
e6502_Address adr,
uint16_t val) {
&adr[0] = val;
&adr[1] = val >> 8;
adr[0] = val;
adr[1] = val >> 8;
}

#else // !E6502_POLL_MEM
@@ -983,12 +983,16 @@ int e6502_run(e6502_Core* core,
return status;
}

#ifdef E6502_POLL_MEM
void e6502_init(e6502_Core* core) { /* nuthin' */ }
#else
void e6502_init(e6502_Core* core, e6502_Read read,
e6502_Write write, void* context) {
core->bus_read = read;
core->bus_write = write;
core->bus_context = context;
}
#endif

void e6502_reset(e6502_Core* core) {
core->registers.PC = e6502_r16(core, e6502_Reset_Vec);


Carregando…
Cancelar
Salvar