X-Git-Url: http://git.joshuawise.com/fpgaboy.git/blobdiff_plain/df770340caf8ecd26a55179484edb507082bd5c6..d1b404569fd0bdc74a3397c4ef0a5c2e5f95c835:/insn_vop_intr.v diff --git a/insn_vop_intr.v b/insn_vop_intr.v index 134d462..ce0bcf8 100644 --- a/insn_vop_intr.v +++ b/insn_vop_intr.v @@ -1,18 +1,11 @@ `ifdef EXECUTE `INSN_VOP_INTR: begin case (cycle) - 0: begin - address <= {registers[`REG_SPH],registers[`REG_SPL]} - 1; - wdata <= registers[`REG_PCH]; - wr <= 1; - end - 1: begin - address <= {registers[`REG_SPH],registers[`REG_SPL]} - 2; - wdata <= registers[`REG_PCL]; - wr <= 1; - end + 0: `EXEC_WRITE(`_SP - 1, `_PCH) + 1: `EXEC_WRITE(`_SP - 2, `_PCL) 2: begin - `EXEC_NEWCYCLE; + irqack <= 1; + `EXEC_NEWCYCLE end endcase end @@ -25,10 +18,9 @@ 1: begin end 2: begin ie <= 0; - {registers[`REG_PCH],registers[`REG_PCL]} <= - {8'b0,jaddr}; - {registers[`REG_SPH],registers[`REG_SPL]} <= - {registers[`REG_SPH],registers[`REG_SPL]} - 2; + `_PC <= {8'b0, jaddr}; + irqack <= 0; // Must be at the same time as we latch jaddr, or we race! + `_SP <= `_SP - 2; end endcase end