Implement backspace control character
This commit is contained in:
parent
bee5a3a471
commit
227dce66e9
14
terminal.vhd
14
terminal.vhd
@ -52,6 +52,7 @@ begin
|
||||
-- the current row before jumping to the next one
|
||||
process(sys_clk)
|
||||
variable next_line: unsigned(5 downto 0);
|
||||
variable previous_col: unsigned(6 downto 0);
|
||||
begin
|
||||
if rising_edge(sys_clk) then
|
||||
-- we write to the current cursor position and simply pass the data
|
||||
@ -74,9 +75,20 @@ begin
|
||||
next_line := cursor_row + 1;
|
||||
end if;
|
||||
|
||||
-- calculate previous column (saturating)
|
||||
if cursor_col = 0 then
|
||||
previous_col := (others => '0');
|
||||
else
|
||||
previous_col := cursor_col - 1;
|
||||
end if;
|
||||
|
||||
if write_enable = '1' then
|
||||
-- backspace
|
||||
if write_data = x"08" then
|
||||
cursor_col <= previous_col;
|
||||
|
||||
-- carriage return
|
||||
if write_data = x"0d" then
|
||||
elsif write_data = x"0d" then
|
||||
cursor_col <= (others => '0');
|
||||
|
||||
-- line feed (implicit CR)
|
||||
|
Loading…
Reference in New Issue
Block a user