From 08fdc65d69f5d24d71f8aff63a78bd5cd5ec3f3f Mon Sep 17 00:00:00 2001 From: Gyorgy Szombathelyi Date: Mon, 23 Mar 2020 16:12:05 +0100 Subject: [PATCH] [C64] T65: detect IRQ even when not RDY Fixes Tsunami demo Waiting for RDY while the interrupt already asserted causes too much delay. The interrupt cycle will still start at the correct position, as soon as the RDY line is de-asserted, and other conditions are satisfied. --- cores/c64/rtl/t65/T65.vhd | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/cores/c64/rtl/t65/T65.vhd b/cores/c64/rtl/t65/T65.vhd index 90bf886..66df868 100755 --- a/cores/c64/rtl/t65/T65.vhd +++ b/cores/c64/rtl/t65/T65.vhd @@ -474,9 +474,11 @@ begin P<=tmpP;--new way - if IR(4 downto 0)/="10000" or Jump/="01" then -- delay interrupts during branches (checked with Lorenz test and real 6510), not best way yet, though - but works... - IRQ_n_o <= IRQ_n; - end if; + end if; + + -- detect irq even if not rdy + if IR(4 downto 0)/="10000" or Jump/="01" then -- delay interrupts during branches (checked with Lorenz test and real 6510), not best way yet, though - but works... + IRQ_n_o <= IRQ_n; end if; -- detect nmi even if not rdy if IR(4 downto 0)/="10000" or Jump/="01" then -- delay interrupts during branches (checked with Lorenz test and real 6510) not best way yet, though - but works...