// // Created by william on 10/15/23. // #include "memory.h" #include "ram.h" #include "../include/rom.h" byte mem_get_byte(Mapper *mapper, address addr) { address redirected_addr = mapper->redirect_addr(addr); if (redirected_addr < 0x0800) { return ram_get_byte(redirected_addr); } else if (redirected_addr >= 0x4020) { return rom_prg_get_byte(redirected_addr - 0x4020); } return 0; } word mem_get_word(Mapper *mapper, address addr) { address redirected_addr = mapper->redirect_addr(addr); if (redirected_addr < 0x0800) { return ram_get_word(redirected_addr); } else if (redirected_addr >= 0x4020) { return rom_prg_get_word(redirected_addr - 0x4020); } return 0; } void mem_set_byte(Mapper *mapper, address addr, byte byte) { address redirected_addr = mapper->redirect_addr(addr); ram_set_byte(redirected_addr, byte); }