mirror of https://github.com/bsnes-emu/bsnes.git
28 lines
692 B
C++
28 lines
692 B
C++
struct Memory {
|
|
virtual uint32 read(uint32 addr, uint32 size) = 0;
|
|
virtual void write(uint32 addr, uint32 size, uint32 word) = 0;
|
|
};
|
|
|
|
struct MMIO : Memory {
|
|
virtual uint8 read(uint32 addr) = 0;
|
|
virtual void write(uint32 addr, uint8 data) = 0;
|
|
uint32 read(uint32 addr, uint32 size);
|
|
void write(uint32 addr, uint32 size, uint32 word);
|
|
};
|
|
|
|
struct Bus : Memory {
|
|
Memory* mmio[0x400];
|
|
bool idleflag;
|
|
static uint32 mirror(uint32 addr, uint32 size);
|
|
|
|
uint32 speed(uint32 addr, uint32 size);
|
|
void idle(uint32 addr);
|
|
uint32 read(uint32 addr, uint32 size);
|
|
void write(uint32 addr, uint32 size, uint32 word);
|
|
void power();
|
|
|
|
void serialize(serializer&);
|
|
};
|
|
|
|
extern Bus bus;
|