Refactor memory access code; add MMIO support