4 rtc_t::rtc_t(std::vector
<processor_t
*>& procs
)
5 : procs(procs
), regs(1 + procs
.size())
9 bool rtc_t::load(reg_t addr
, size_t len
, uint8_t* bytes
)
11 if (addr
+ len
> size())
13 memcpy(bytes
, (uint8_t*)®s
[0] + addr
, len
);
17 bool rtc_t::store(reg_t addr
, size_t len
, const uint8_t* bytes
)
19 if (addr
+ len
> size() || addr
< 8)
21 memcpy((uint8_t*)®s
[0] + addr
, bytes
, len
);
26 void rtc_t::increment(reg_t inc
)
29 for (size_t i
= 0; i
< procs
.size(); i
++) {
30 procs
[i
]->state
.mip
&= ~MIP_MTIP
;
31 if (regs
[0] >= regs
[1+i
])
32 procs
[i
]->state
.mip
|= MIP_MTIP
;