Z80: Added mode input to control idle mode

Change-Id: I59c4696c9921ecad62be0785764fdf35ec9d82d5
This commit is contained in:
David Banks 2019-10-26 15:35:53 +01:00
parent 26f0bea110
commit c39cf8649b
2 changed files with 10 additions and 4 deletions

View File

@ -54,6 +54,9 @@ entity Z80CpuMon is
Data : inout std_logic_vector(7 downto 0); Data : inout std_logic_vector(7 downto 0);
DOE_n : out std_logic; DOE_n : out std_logic;
-- Mode jumper, tie low to generate NOPs when paused
mode : in std_logic;
-- External trigger inputs -- External trigger inputs
trig : in std_logic_vector(1 downto 0); trig : in std_logic_vector(1 downto 0);
@ -471,8 +474,8 @@ begin
if mon_wait_n = '1' then if mon_wait_n = '1' then
state <= nop_t3; state <= nop_t3;
else else
mon_m1_n <= '0'; mon_m1_n <= mode;
mon_xx_n <= '0'; mon_xx_n <= mode;
state <= nop_t2; state <= nop_t2;
end if; end if;
end if; end if;
@ -482,7 +485,7 @@ begin
state <= nop_t2; state <= nop_t2;
-- Increment the refresh address (7 bits, just like the Z80) -- Increment the refresh address (7 bits, just like the Z80)
rfsh_addr(6 downto 0) <= rfsh_addr(6 downto 0) + 1; rfsh_addr(6 downto 0) <= rfsh_addr(6 downto 0) + 1;
mon_xx_n <= '0'; mon_xx_n <= mode;
when nop_t2 => when nop_t2 =>
if mon_wait_n = '1' then if mon_wait_n = '1' then
mon_rfsh_n <= '0'; mon_rfsh_n <= '0';
@ -504,7 +507,7 @@ begin
state <= resume; state <= resume;
else else
state <= nop_t1; state <= nop_t1;
mon_m1_n <= '0'; mon_m1_n <= mode;
end if; end if;
-- Resume, -- Resume,

View File

@ -155,6 +155,9 @@ begin
Data => Data, Data => Data,
DOE_n => DOE_n, DOE_n => DOE_n,
-- Mode jumper, tie low to generate NOPs when paused
mode => mode,
-- External trigger inputs -- External trigger inputs
trig => trig, trig => trig,