X-Git-Url: http://git.joshuawise.com/fpgaboy.git/blobdiff_plain/06ad3a30038ac8ca45dd7b0c34213c0c8335c17c..fd79fd51f31d48b1c2adddfa8d6dd9f91cb764b4:/Interrupt.v diff --git a/Interrupt.v b/Interrupt.v index 4e3d17d..1450b2c 100644 --- a/Interrupt.v +++ b/Interrupt.v @@ -17,7 +17,7 @@ module Interrupt( wire [7:0] iflag = {3'b0,buttons,serial,tovf,lcdc,vblank}; reg [7:0] imask = 16'hFFFF; - reg [7:0] ihold = 0; + reg [7:0] ihold = 8'b0; wire [7:0] imasked = ihold & imask; assign data = rd ? @@ -34,12 +34,12 @@ module Interrupt( imasked[3] ? 8'h58 : imasked[4] ? 8'h60 : 8'h00; - always @ (negedge clk) + always @(negedge clk) begin - if (wr) begin + if (wr && (addr == `ADDR_IF || addr == `ADDR_IE)) begin case(addr) `ADDR_IF : ihold <= iflag | data; - `ADDR_IE : imask <= data; + `ADDR_IE : begin imask <= data; ihold <= ihold | iflag; end endcase end