Mercurial > hg > ede
view emulator/mem.c @ 15:26044ed126fb
minor changes to emu
author | james <jb302@eecs.qmul.ac.uk> |
---|---|
date | Thu, 30 Jan 2014 12:55:23 +0000 |
parents | 2b8eb2c86602 |
children | 50dd22c1ccba |
line wrap: on
line source
/* mem.c * functions for accessing emulator memory */ #include "mem.h" BYTE fetch(void) { return memory[registers.PC]; } BYTE read_mem(WIDE addr) { return memory[addr]; } void write_mem(WIDE addr, BYTE data) { memory[addr] = data; } BYTE get_R(BYTE reg, _Bool bank) { switch(bank) { case 0: return registers.R[reg]; break; case 1: return registers.R[reg + 0x03]; break; } } void set_R(BYTE reg, _Bool bank, BYTE data) { switch(bank) { case 0: registers.R[reg] = data; break; case 1: registers.R[reg + 0x03] = data; break; } } WIDE get_DPTR(void) { return (((WIDE)registers.DPH) << 8) | registers.DPL; } void set_DPTR(WIDE data) { registers.DPH = (BYTE)((data & 0xFF00) >> 8); registers.DPL = (BYTE)(data & 0x00FF); } WIDE get_SP(void) { return (((WIDE)registers.SPH) << 8) | registers.SPL; } void set_SP(WIDE data) { registers.SPH = (BYTE)((data & 0xFF00) >> 8); registers.SPL = (BYTE)(data & 0x00FF); }