void memmap_mem_store(unsigned int addr, unsigned int value) { if (((addr >= 0x9000) && (addr <= 0x93ff)) || ((addr >= 0x9800) && (addr <= 0x9fff))) { monitor_memmap_store(addr, MEMMAP_I_O_W); } else if (((addr >= 0x8000) && (addr <= 0x8fff)) || (addr >= 0xc000)) { monitor_memmap_store(addr, MEMMAP_ROM_W); } else { monitor_memmap_store(addr, MEMMAP_RAM_W); } (*_mem_write_tab_ptr[(addr) >> 8])((WORD)(addr), (BYTE)(value)); }
/* mark as read (no side effects) */ void memmap_mark_read(unsigned int addr) { if (((addr >= 0x9000) && (addr <= 0x93ff)) || ((addr >= 0x9800) && (addr <= 0x9fff))) { monitor_memmap_store(addr, MEMMAP_I_O_R); } else if (((addr >= 0x8000) && (addr <= 0x8fff)) || (addr >= 0xc000)) { monitor_memmap_store(addr, (memmap_state & MEMMAP_STATE_OPCODE) ? MEMMAP_ROM_X : (memmap_state & MEMMAP_STATE_INSTR) ? 0 : MEMMAP_ROM_R); } else { monitor_memmap_store(addr, (memmap_state & MEMMAP_STATE_OPCODE) ? MEMMAP_RAM_X : (memmap_state & MEMMAP_STATE_INSTR) ? 0 : MEMMAP_RAM_R); } memmap_state &= ~(MEMMAP_STATE_OPCODE); }
BYTE memmap_mem_read(unsigned int addr) { if (((addr >= 0x9000)&&(addr <= 0x93ff)) || ((addr >= 0x9800)&&(addr <= 0x9fff))) { monitor_memmap_store(addr, MEMMAP_I_O_R); } else if (((addr >= 0x8000)&&(addr <= 0x8fff)) || (addr >= 0xc000)) { monitor_memmap_store(addr, (memmap_state&MEMMAP_STATE_OPCODE)?MEMMAP_ROM_X:(memmap_state&MEMMAP_STATE_INSTR)?0:MEMMAP_ROM_R); } else { monitor_memmap_store(addr, (memmap_state&MEMMAP_STATE_OPCODE)?MEMMAP_RAM_X:(memmap_state&MEMMAP_STATE_INSTR)?0:MEMMAP_RAM_R); } memmap_state &= ~(MEMMAP_STATE_OPCODE); return (*_mem_read_tab_ptr[(addr) >> 8])((WORD)(addr)); }
void memmap_mark_read(unsigned int addr) { monitor_memmap_store(addr, (memmap_state & MEMMAP_STATE_OPCODE) ? MEMMAP_RAM_X : (memmap_state & MEMMAP_STATE_INSTR) ? 0 : MEMMAP_RAM_R); memmap_state &= ~(MEMMAP_STATE_OPCODE); }
void memmap_mem_store(unsigned int addr, unsigned int value) { monitor_memmap_store(addr, MEMMAP_RAM_W); (*_mem_write_tab_ptr[(addr) >> 8])((WORD)(addr), (BYTE)(value)); }