diff options
Diffstat (limited to 'src/cpu')
| -rw-r--r-- | src/cpu/cpu.ts | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/cpu/cpu.ts b/src/cpu/cpu.ts index 2675d1d..fe3bf63 100644 --- a/src/cpu/cpu.ts +++ b/src/cpu/cpu.ts @@ -141,9 +141,10 @@ export class CPU { } updateInterruptEnable(interrupt: AVRInterruptConfig, registerValue: u8) { - const { enableMask, flagRegister, flagMask } = interrupt; + const { enableMask, flagRegister, flagMask, inverseFlag } = interrupt; if (registerValue & enableMask) { - if (this.data[flagRegister] & flagMask) { + const bitSet = this.data[flagRegister] & flagMask; + if (inverseFlag ? !bitSet : bitSet) { this.queueInterrupt(interrupt); } } else { |
