diff options
| author | Uri Shaked | 2021-10-24 15:33:09 +0300 |
|---|---|---|
| committer | Uri Shaked | 2021-10-24 15:33:09 +0300 |
| commit | a7132e3766deb4ee49f94513b702525b42af2c1f (patch) | |
| tree | b37a178f75476109090d98949defccaf1833d672 /src/cpu | |
| parent | 0.18.3 (diff) | |
| download | avr8js-a7132e3766deb4ee49f94513b702525b42af2c1f.tar.gz avr8js-a7132e3766deb4ee49f94513b702525b42af2c1f.tar.bz2 avr8js-a7132e3766deb4ee49f94513b702525b42af2c1f.zip | |
fix(eeprom): EEPROM interrupt not firing #110
fix #110
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 { |
