Add an interrupt ack, so that interrupts are cleared automatically. This fixes APOCAL...
[fpgaboy.git] / insn_vop_intr.v
index 5cb40e1..ce0bcf8 100644 (file)
@@ -3,7 +3,10 @@
                case (cycle)
                0:      `EXEC_WRITE(`_SP - 1, `_PCH)
                1:      `EXEC_WRITE(`_SP - 2, `_PCL)
-               2:      `EXEC_NEWCYCLE
+               2:      begin
+                               irqack <= 1;
+                               `EXEC_NEWCYCLE
+                       end
                endcase
        end
 `endif
@@ -16,6 +19,7 @@
                2:      begin
                                ie <= 0;
                                `_PC <= {8'b0, jaddr};
+                               irqack <= 0;    // Must be at the same time as we latch jaddr, or we race!
                                `_SP <= `_SP - 2;
                        end
                endcase
This page took 0.018124 seconds and 4 git commands to generate.