From 8934a7566a038a74464d3d8df9d04fd875e5b1d7 Mon Sep 17 00:00:00 2001 From: lironh Date: Sat, 21 Mar 2020 09:52:53 +0200 Subject: refactor: added peripherals and cpu feature folders --- src/cpu/interrupt.spec.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/cpu/interrupt.spec.ts (limited to 'src/cpu/interrupt.spec.ts') diff --git a/src/cpu/interrupt.spec.ts b/src/cpu/interrupt.spec.ts new file mode 100644 index 0000000..cc54e3c --- /dev/null +++ b/src/cpu/interrupt.spec.ts @@ -0,0 +1,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 + }); +}); -- cgit v1.2.3