when S_PUTCH1 =>
state_next <= S_PUTCH2;
when S_PUTCH2 =>
- if free = '0' or (free = '1' and d_char = x"00") then
+ if free = '0' then
state_next <= S_WAIT;
end if;
when S_WAIT =>
when S_GETCH =>
d_get_next <= '1';
when S_PUTCH1 =>
- if d_char /= x"00" then
- command_next <= COMMAND_SET_CHAR;
+ command_next <= COMMAND_SET_CHAR;
+ if d_char = x"00" then
+ command_data_next <= x"ffffff" & x"20";
+ else
command_data_next <= x"ffffff" & std_logic_vector(d_char);
end if;
when S_PUTCH2 => null;