From a73a7caad27023af41f443bd9121c8570f5add48 Mon Sep 17 00:00:00 2001 From: Gyorgy Szombathelyi Date: Tue, 12 Feb 2019 11:27:46 +0100 Subject: [PATCH] [C64] CIA: fix flag_n input --- cores/c64/rtl/mos6526.v | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/cores/c64/rtl/mos6526.v b/cores/c64/rtl/mos6526.v index 66f5903..a51dc63 100644 --- a/cores/c64/rtl/mos6526.v +++ b/cores/c64/rtl/mos6526.v @@ -1,8 +1,7 @@ // MOS6526 // by Rayne // Timers & Interrupts are rewritten by slingshot -// Passes all CIA Timer tests -// TODO: check if Flag and Serial port interrupts are still working +// Passes all Lorenz CIA Timer tests module mos6526 ( input wire mode, // 0 - 6526 "old", 1 - 8521 "new" @@ -153,9 +152,14 @@ end // FLAG Input always @(posedge clk) begin - if (!res_n || int_reset) icr[4] <= 1'b0; - else if (!flag_n && flag_n_prev) icr[4] <= 1'b1; - if (phi2_p) flag_n_prev <= flag_n; + if (!res_n) icr[4] <= 1'b0; + else begin + if (!flag_n && flag_n_prev) icr[4] <= 1'b1; + if (phi2_p) begin + flag_n_prev <= flag_n; + if (int_reset) icr[4] <= 1'b0; + end + end end // Port Control Output