3 void bus_t::add_device(reg_t addr
, abstract_device_t
* dev
)
8 bool bus_t::load(reg_t addr
, size_t len
, uint8_t* bytes
)
10 auto it
= devices
.lower_bound(-addr
);
11 if (it
== devices
.end())
13 return it
->second
->load(addr
- -it
->first
, len
, bytes
);
16 bool bus_t::store(reg_t addr
, size_t len
, const uint8_t* bytes
)
18 auto it
= devices
.lower_bound(-addr
);
19 if (it
== devices
.end())
21 return it
->second
->store(addr
- -it
->first
, len
, bytes
);
24 rom_device_t::rom_device_t(std::vector
<char> data
)
29 bool rom_device_t::load(reg_t addr
, size_t len
, uint8_t* bytes
)
31 if (addr
+ len
> data
.size())
33 memcpy(bytes
, &data
[addr
], len
);
37 bool rom_device_t::store(reg_t addr
, size_t len
, const uint8_t* bytes
)