mirror of https://github.com/bsnes-emu/bsnes.git
21 lines
485 B
C++
21 lines
485 B
C++
auto CPU::poll() -> void {
|
|
if(!state.poll) return;
|
|
|
|
for(int n = 7; n >= 0; n--) {
|
|
if(!r.interruptEnable.bit(n)) continue;
|
|
if(!r.interruptStatus.bit(n)) continue;
|
|
state.halt = false;
|
|
if(V30MZ::r.f.i) interrupt(r.interruptBase + n);
|
|
return;
|
|
}
|
|
}
|
|
|
|
auto CPU::raise(Interrupt irq) -> void {
|
|
if(!r.interruptEnable.bit((uint)irq)) return;
|
|
r.interruptStatus.bit((uint)irq) = 1;
|
|
}
|
|
|
|
auto CPU::lower(Interrupt irq) -> void {
|
|
r.interruptStatus.bit((uint)irq) = 0;
|
|
}
|