From 0d2405caf3b4c65a2d2b8a9555b1d929a9e44229 Mon Sep 17 00:00:00 2001 From: Uri Shaked Date: Wed, 2 Sep 2020 13:29:54 +0300 Subject: fix(instruction): EICALL is broken close #59 --- src/cpu/instruction.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/cpu/instruction.ts') diff --git a/src/cpu/instruction.ts b/src/cpu/instruction.ts index 51bc3ab..e82b811 100644 --- a/src/cpu/instruction.ts +++ b/src/cpu/instruction.ts @@ -224,7 +224,8 @@ export function avrInstruction(cpu: ICPU) { const eind = cpu.data[0x3c]; cpu.data[sp] = retAddr & 255; cpu.data[sp - 1] = (retAddr >> 8) & 255; - cpu.dataView.setUint16(93, sp - 2, true); + cpu.data[sp - 2] = (retAddr >> 16) & 255; + cpu.dataView.setUint16(93, sp - 3, true); cpu.pc = ((eind << 16) | cpu.dataView.getUint16(30, true)) - 1; cpu.cycles += 3; } else if (opcode === 0x9419) { -- cgit v1.2.3