From 29c81849a0993dcf7f9927ae2aa97839ec2f8337 Mon Sep 17 00:00:00 2001 From: Väinö Kauppila Date: Sun, 19 Apr 2026 20:16:18 +0300 Subject: interrupts working now with timer --- hdl/dpram.vhd | 4 ++-- hdl/state_machine.vhd | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'hdl') diff --git a/hdl/dpram.vhd b/hdl/dpram.vhd index 92b57f2..6cbc338 100644 --- a/hdl/dpram.vhd +++ b/hdl/dpram.vhd @@ -164,7 +164,7 @@ begin if we = '1' then if addr = "00000000" or addr = "10000000" then -- 0x00/0x80 INDF: indirect via FSR - mem(16#03#) <= d_status; + mem(16#03#) <= mem(16#03#)(7 downto 3) & d_status(2 downto 0); mem(to_integer(unsigned(mem(16#04#)))) <= d; elsif addr = "00000001" then -- 0x01 TMR0: routed to timer0, not RAM mem(16#03#) <= mem(16#03#)(7 downto 3) & d_status(2 downto 0); @@ -183,7 +183,7 @@ begin -- peripheral-mapped addresses: don't write to RAM mem(16#03#) <= mem(16#03#)(7 downto 3) & d_status(2 downto 0); else - mem(16#03#) <= d_status; + mem(16#03#) <= mem(16#03#)(7 downto 3) & d_status(2 downto 0); mem(to_integer(unsigned(addr))) <= d; end if; end if; diff --git a/hdl/state_machine.vhd b/hdl/state_machine.vhd index 1fb5291..33d2f33 100644 --- a/hdl/state_machine.vhd +++ b/hdl/state_machine.vhd @@ -216,7 +216,7 @@ begin we_mem <= '1'; end if; when LITERAL_OP => - if instr.op /= NOP and instr.op /= RETUR then + if instr.op /= NOP and instr.op /= RETUR and instr.op /= RETFIE then we_w <= '1'; end if; when others => null; -- cgit v1.3