diff options
Diffstat (limited to 'hdl')
| -rw-r--r-- | hdl/dpram.vhd | 4 | ||||
| -rw-r--r-- | hdl/state_machine.vhd | 2 |
2 files changed, 3 insertions, 3 deletions
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; |
