#include #include #include "dat.h" #include "fns.h" u8int *mem; u8int *romptr; u8int memread(u16int a) { return mem[a]; } void memwrite(u16int a, u8int v) { if((void*)a < romptr) mem[a] = v; } void push8(u8int v) { memwrite(0x100 | rS--, v); } void push16(u16int v) { memwrite(0x100 | rS--, v >> 8); memwrite(0x100 | rS--, v); } u8int pop8(void) { return memread(0x100 | ++rS); } u16int pop16(void) { u16int v; v = memread(0x100 | ++rS); v |= memread(0x100 | ++rS) << 8; return v; } u8int fetch8(void) { return memread(pc++); } u16int fetch16(void) { u16int r; r = memread(pc++); r |= memread(pc++) << 8; return r; }