blob: cc54e3cdc1dd0bff820f4e12eaa524db13f135fe (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import { CPU } from './cpu';
import { avrInterrupt } from './interrupt';
describe('avrInterrupt', () => {
it('should execute interrupt handler', () => {
const cpu = new CPU(new Uint16Array(0x8000));
cpu.pc = 0x520;
cpu.data[94] = 0;
cpu.data[93] = 0x80; // SP <- 0x80
cpu.data[95] = 0b10000001; // SREG <- I------C
avrInterrupt(cpu, 5);
expect(cpu.cycles).toEqual(2);
expect(cpu.pc).toEqual(5);
expect(cpu.data[93]).toEqual(0x7e); // SP
expect(cpu.data[0x80]).toEqual(0x20); // Return addr low
expect(cpu.data[0x7f]).toEqual(0x5); // Return addr high
expect(cpu.data[95]).toEqual(0b00000001); // SREG: -------C
});
});
|