history: bugfix fuer leere eingabe
authorBernhard Urban <lewurm@gmail.com>
Fri, 21 May 2010 18:26:25 +0000 (20:26 +0200)
committerBernhard Urban <lewurm@gmail.com>
Fri, 21 May 2010 18:26:25 +0000 (20:26 +0200)
hintergrund: die internen counter fuer parser wurden an der falschen stelle resettet.

src/TODO
src/history.vhd
src/parser.test

index 03858e6c63841e36e54bebef673f847d44b773f9..1bcbbf664dce39e060dd3190eb3f05a95df9d97d 100644 (file)
--- a/src/TODO
+++ b/src/TODO
 - was passiert nach 50 berechnungen?
 
 
 - 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
 
 == low prio ==
 - mehr testfaelle fuer alu/scanner/parser
index 5cdc79fe7c98a60313ed3d3fcef177dcd08000e3..cf091e317b9aeafcef64a464e8a4f25d012d3e2b 100644 (file)
@@ -88,7 +88,7 @@ begin
                        p_wdone_int <= '0';
                        p_read_int <= (others => '0');
                        p_sp_read_int <= (others => '0');
                        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";
 
                        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';
                        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));
                        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;
                                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');
 
                        when S_D_INIT =>
                                addr_tmp := (others => '0');
index 3d7c62f4a5c8880bd97f0bfa80c73c35291f8c51..397c76f642c9edb9b2258418e17150445b7ba136 100644 (file)
 # t40
 -1073741824+-1073741824
 -2147483648
 # t40
 -1073741824+-1073741824
 -2147483648
+# t41, leere eingabe
+
+ Fehler:                             Syntax                            
+# t42, leere eingabe mit blanks
+ Fehler:                             Syntax                            
+# t42, leere eingabe mit blanks
+    
+ Fehler:                             Syntax