From 4ac86600b139d03894980cbbee1db3d6081d71d1 Mon Sep 17 00:00:00 2001 From: Bernhard Urban Date: Fri, 21 May 2010 20:26:25 +0200 Subject: [PATCH] history: bugfix fuer leere eingabe hintergrund: die internen counter fuer parser wurden an der falschen stelle resettet. --- src/TODO | 12 +++--------- src/history.vhd | 8 ++++---- src/parser.test | 9 +++++++++ 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/TODO b/src/TODO index 03858e6..1bcbbf6 100644 --- a/src/TODO +++ b/src/TODO @@ -16,15 +16,9 @@ - was passiert nach 50 berechnungen? -- andere farbe als weiss fuer das ergebnis - - -- "$ " oder sonst was fuer ergebnis zeile - - -BUGS: -- leere eingabe - +- scanner rewrite: nicht bei key-release sondern bei key-pressed + o vorteil: man kann auf der taste drauf bleiben und man kann + keine zahlen mehr mit den coursertasten eingeben == low prio == - mehr testfaelle fuer alu/scanner/parser diff --git a/src/history.vhd b/src/history.vhd index 5cdc79f..cf091e3 100644 --- a/src/history.vhd +++ b/src/history.vhd @@ -88,7 +88,7 @@ begin p_wdone_int <= '0'; p_read_int <= (others => '0'); p_sp_read_int <= (others => '0'); - p_sp_write_int <= (others => '0'); + p_sp_write_int <= std_logic_vector(to_unsigned(71,p_sp_write_int'length)); address_int <= (0 => '1', others => '0'); data_in_int <= x"00"; @@ -246,6 +246,9 @@ begin when S_S_FIN => s_cnt_next <= (0 => '1', others => '0'); d_new_result_next <= '1'; + -- resetten der parser counter + p_sp_read_next <= (others => '0'); + p_sp_write_next <= std_logic_vector(to_unsigned(71,p_sp_write_next'length)); when S_S_FIN_POSUP => -- TODO: overflow nach 50 berechnungen... => wieder von vorne anfangen pos_next <= std_logic_vector(unsigned(pos_int) + to_unsigned(142,H_RAM_WIDTH)); @@ -257,9 +260,6 @@ begin if s_take = '0' then was_bs_next <= '0'; end if; - -- TODO: bessere stelle fuers reseten der parser signale? - p_sp_read_next <= (others => '0'); - p_sp_write_next <= std_logic_vector(to_unsigned(71,p_sp_write_next'length)); when S_D_INIT => addr_tmp := (others => '0'); diff --git a/src/parser.test b/src/parser.test index 3d7c62f..397c76f 100644 --- a/src/parser.test +++ b/src/parser.test @@ -120,3 +120,12 @@ # t40 -1073741824+-1073741824 -2147483648 +# t41, leere eingabe + + Fehler: Syntax +# t42, leere eingabe mit blanks + + Fehler: Syntax +# t42, leere eingabe mit blanks + + Fehler: Syntax -- 2.25.1