Cleanup of autoconf files
[emu8051.git] / src / cli / parser.y
index 00338b3..dc42613 100644 (file)
@@ -9,6 +9,7 @@
 #include "menu.h"
 #include "memory.h"
 #include "timers.h"
+#include "memory.h"
 #include "cpu8051.h"
 
 /* int yydebug = 1; */
@@ -18,16 +19,23 @@ int yylex();
 
 int yyerror(const char *str)
 {
-       fprintf(stderr,"error: %s\n", str);
+        fprintf(stderr,"error: %s\n", str);
         return 0;
 }
 
 %}
 
-%token NUMBER TOK_ENTER TOK_ALL
+%union
+{
+        int number;
+        char *string;
+}
+
+%token <number> NUMBER
+%token <string> WORD
+%token TOK_ENTER TOK_ALL
 %token TOK_SB TOK_RB TOK_DB
 %token TOK_DE TOK_DI TOK_DP TOK_DR
-%token TOK_PC
 %token TOK_HELP
 %token TOK_RUN
 %token TOK_RST TOK_RST_TIMER
@@ -35,33 +43,27 @@ int yyerror(const char *str)
 %token TOK_UNASM
 %token TOK_MOD_EXT TOK_MOD_INT TOK_MOD_PROG TOK_MOD_REG
 %token TOK_QUIT
+%token TOK_A TOK_B TOK_C TOK_D
 
 %%
 
-start  :  start command { menu_prompt(); }
+start  :  start command
    |  error TOK_ENTER {
          /* In case of error, discard entire line */
          yyerrok;
-         menu_prompt();
       }
-   | start TOK_ENTER { menu_prompt(); }
+   | start TOK_ENTER
    |
    ;
 
 command:
-   pc_set
-   |
    breakpoint_clr
    |
    breakpoint_set
    |
    breakpoint_display
    |
-   dump_ext_mem
-   |
-   dump_int_mem
-   |
-   dump_prog_mem
+   dump_mem
    |
    display_regs
    |
@@ -84,66 +86,62 @@ breakpoint_clr:
        TOK_RB NUMBER TOK_ENTER
        {
           log_debug("  Remove breakpoint at $%04X", $2);
-          ClearBreakpoint($2);
+          breakpoint_clr($2);
        }
         |
        TOK_RB TOK_ENTER
        {
           log_debug("  Remove breakpoint at PC");
-          ClearBreakpoint(cpu8051.pc);
+          breakpoint_clr(cpu8051.pc);
        }
         |
        TOK_RB TOK_ALL TOK_ENTER
        {
           log_debug("  Remove all breakpoints");
-          ClearAllBreakpoints();
+          breakpoints_clr_all();
        }
        ;
 
 breakpoint_set:
        TOK_SB TOK_ENTER
        {
-          log_debug("  Set breakpoint at current PC");
-          SetBreakpoint(cpu8051.pc);
+          log_debug("  Set breakpoint at PC");
+          breakpoint_set(cpu8051.pc);
        }
         |
 
        TOK_SB NUMBER TOK_ENTER
        {
           log_debug("  Set breakpoint at $%04X", $2);
-          SetBreakpoint($2);
-       }
+          breakpoint_set($2);
+        }
        ;
 
 breakpoint_display:
        TOK_DB TOK_ENTER
        {
           log_debug("  Display breakpoints");
-          ShowBreakpoints();
+          breakpoints_show();
        }
        ;
 
-dump_ext_mem:
+dump_mem:
        TOK_DE NUMBER NUMBER TOK_ENTER
        {
           log_debug("  Dump External Data Memory at $%04X, len %d", $2, $3);
-          DumpMem($2, $3, EXT_MEM_ID);
+          mem_dump($2, $3, EXT_MEM_ID);
        }
-       ;
-
-dump_int_mem:
+        |
        TOK_DI NUMBER NUMBER TOK_ENTER
        {
           log_debug("  Dump Internal Data Memory at $%04X, len %d", $2, $3);
-          DumpMem($2, $3, INT_MEM_ID);
+          mem_dump($2, $3, INT_MEM_ID);
        }
-       ;
-
-dump_prog_mem:
+        |
        TOK_DP NUMBER NUMBER TOK_ENTER
        {
           log_debug("  Dump Program Memory at $%04X, len %d", $2, $3);
-          DumpMem($2, $3, PGM_MEM_ID);
+          mem_dump($2, $3, PGM_MEM_ID);
        }
        ;
 
@@ -159,25 +157,24 @@ modify:
        TOK_MOD_EXT NUMBER NUMBER TOK_ENTER
        {
           log_debug("  Modify external memory");
-          memory_write8(EXT_MEM_ID, $2, $3);
+          mem_write8(EXT_MEM_ID, $2, $3);
        }
        |
        TOK_MOD_INT NUMBER NUMBER TOK_ENTER
        {
           log_debug("  Modify internal memory");
-          memory_write8(INT_MEM_ID, $2, $3);
+          mem_write8(INT_MEM_ID, $2, $3);
        }
        |
        TOK_MOD_PROG NUMBER NUMBER TOK_ENTER
        {
           log_debug("  Modify program memory");
-          memory_write8(PGM_MEM_ID, $2, $3);
+          mem_write8(PGM_MEM_ID, $2, $3);
        }
        |
-       TOK_MOD_REG "pc" NUMBER TOK_ENTER
+       TOK_MOD_REG WORD NUMBER TOK_ENTER
        {
-          log_debug("  Modify register");
-          SetRegister("PC", $2);
+          register_set($2, $3);
        }
        ;
 
@@ -203,13 +200,6 @@ run:
        }
        ;
 
-pc_set:
-       TOK_PC NUMBER TOK_ENTER
-       {
-          cpu8051.pc = $2;
-       }
-       ;
-
 help:
        TOK_HELP TOK_ENTER
        {
@@ -220,12 +210,27 @@ help:
 reset:
        TOK_RST TOK_ENTER
        {
-          cpu8051_Reset();
+          cpu8051_reset();
+       }
+        |
+       TOK_RST_TIMER TOK_A TOK_ENTER
+       {
+          gp_timer_reset(0);
+       }
+        |
+       TOK_RST_TIMER TOK_B TOK_ENTER
+       {
+          gp_timer_reset(1);
+       }
+        |
+       TOK_RST_TIMER TOK_C TOK_ENTER
+       {
+          gp_timer_reset(2);
        }
         |
-       TOK_RST_TIMER TOK_ENTER
+       TOK_RST_TIMER TOK_D TOK_ENTER
        {
-          gp_timer_reset();
+          gp_timer_reset(3);
        }
         ;
 
@@ -239,18 +244,18 @@ step:
 unasm:
        TOK_UNASM NUMBER NUMBER TOK_ENTER
        {
-          DisasmN($2, $3);
+          disassemble_num($2, $3);
        }
         |
        TOK_UNASM NUMBER TOK_ENTER
        {
-          DisasmN(cpu8051.pc, $2);
+          disassemble_num(cpu8051.pc, $2);
        }
        ;
         |
        TOK_UNASM TOK_ENTER
        {
-          DisasmN(cpu8051.pc, 16);
+          disassemble_num(cpu8051.pc, 16);
        }
        ;