소스 검색

Fix polled-memory mode

master
부모
커밋
a695312647
1개의 변경된 파일9개의 추가작업 그리고 5개의 파일을 삭제
  1. +9
    -5
      e6502.c

+ 9
- 5
e6502.c 파일 보기

@@ -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, static inline uint8_t e6502_adr_r8(e6502_Core* core,
e6502_Address adr) { e6502_Address adr) {
return &adr[0];
return adr[0];
} }


static inline uint8_t e6502_adr_r16(e6502_Core* core, static inline uint8_t e6502_adr_r16(e6502_Core* core,
e6502_Address adr) { 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, static inline void e6502_adr_w8(e6502_Core* core,
e6502_Address adr, e6502_Address adr,
uint8_t val) { uint8_t val) {
&adr[0] = val;
adr[0] = val;
} }


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


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


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


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


불러오는 중...
취소
저장