version 0.2.39: fix of arith insts and start of re-structure
[fw/sdcc] / sim / ucsim / cmd.src / cmdsetcl.h
index fd2434323c26ef78feb0709a9a6e7fe8c5e09872..36beba0d625f25d90bfecfb21183d93a66f7ce29 100644 (file)
@@ -30,309 +30,57 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 
 #include "newcmdcl.h"
 
-
-// CONF
-class cl_conf_cmd: public cl_cmd
-{
-public:
-  cl_conf_cmd(class cl_sim *asim,
-             char *aname,
-             int  can_rep,
-             char *short_hlp,
-             char *long_hlp):
-    cl_cmd(asim, aname, can_rep, short_hlp, long_hlp) {}
-  virtual int do_work(class cl_cmdline *cmdline, class cl_console *con);
-};
-
 // STATE
-class cl_state_cmd: public cl_cmd
-{
-public:
-  cl_state_cmd(class cl_sim *asim,
-              char *aname,
-              int  can_rep,
-              char *short_hlp,
-              char *long_hlp):
-    cl_cmd(asim, aname, can_rep, short_hlp, long_hlp) {}
-  virtual int do_work(class cl_cmdline *cmdline, class cl_console *con);
-};
-
-// FILE
-class cl_file_cmd: public cl_cmd
-{
-public:
-  cl_file_cmd(class cl_sim *asim,
-             char *aname,
-             int  can_rep,
-             char *short_hlp,
-             char *long_hlp):
-    cl_cmd(asim, aname, can_rep, short_hlp, long_hlp) {}
-  virtual int do_work(class cl_cmdline *cmdline, class cl_console *con);
-};
-
-// DOWNLOAD
-class cl_dl_cmd: public cl_cmd
-{
-public:
-  cl_dl_cmd(class cl_sim *asim,
-           char *aname,
-           int  can_rep,
-           char *short_hlp,
-           char *long_hlp):
-    cl_cmd(asim, aname, can_rep, short_hlp, long_hlp) {}
-  virtual int do_work(class cl_cmdline *cmdline, class cl_console *con);
-};
-
-// GET
-class cl_get_cmd: public cl_cmd
-{
-public:
-  cl_get_cmd(class cl_sim *asim,
-            char *aname,
-            int  can_rep,
-            char *short_hlp,
-            char *long_hlp):
-    cl_cmd(asim, aname, can_rep, short_hlp, long_hlp) {}
-  virtual int do_work(class cl_cmdline *cmdline, class cl_console *con);
-  virtual int timer(class cl_cmdline *cmdline, class cl_console *con);
-};
-
-// SET
-class cl_set_cmd: public cl_cmd
-{
-public:
-  cl_set_cmd(class cl_sim *asim,
-            char *aname,
-            int  can_rep,
-            char *short_hlp,
-            char *long_hlp):
-    cl_cmd(asim, aname, can_rep, short_hlp, long_hlp) {}
-  virtual int do_work(class cl_cmdline *cmdline, class cl_console *con);
-  virtual int timer(class cl_cmdline *cmdline, class cl_console *con);
-};
-
-// TIMER
-class cl_timer_cmd: public cl_cmd
-{
+COMMAND(cl_state_cmd);
+COMMAND(cl_file_cmd);
+COMMAND(cl_dl_cmd);
+COMMAND(cl_run_cmd);
+COMMAND(cl_stop_cmd);
+COMMAND(cl_step_cmd);
+COMMAND(cl_next_cmd);
+COMMAND(cl_pc_cmd);
+COMMAND(cl_reset_cmd);
+COMMAND(cl_dump_cmd);
+COMMAND_ANCESTOR(cl_di_cmd,cl_dump_cmd);
+COMMAND_ANCESTOR(cl_dx_cmd,cl_dump_cmd);
+COMMAND_ANCESTOR(cl_dch_cmd,cl_dump_cmd);
+COMMAND_ANCESTOR(cl_ds_cmd,cl_dump_cmd);
+COMMAND_DATA(cl_dc_cmd, t_addr last);
+COMMAND_DATA(cl_disassemble_cmd,int last);
+COMMAND_DATA(cl_fill_cmd,int last);
+COMMAND_HEAD(cl_where_cmd)
+  public: int last;
+COMMAND_METHODS(cl_where_cmd)
+  virtual int do_real_work(class cl_sim *sim,
+                          class cl_cmdline *cmdline, class cl_console *con,
+                          bool case_sensitive);
+COMMAND_TAIL;
+COMMAND_DATA_ANCESTOR(cl_Where_cmd,cl_where_cmd,int last);
+COMMAND(cl_help_cmd);
+COMMAND(cl_quit_cmd);
+COMMAND(cl_kill_cmd);
+
+COMMAND_HEAD(cl_timer_cmd)
 public:
   class cl_ticker *ticker;
-  int what;
+  long what;
   char *name;
-
-  cl_timer_cmd(class cl_sim *asim,
-              char *aname,
-              int  can_rep,
-              char *short_hlp,
-              char *long_hlp):
-    cl_cmd(asim, aname, can_rep, short_hlp, long_hlp) {}
-  virtual int do_work(class cl_cmdline *cmdline, class cl_console *con);
-  void set_ticker(class cl_cmd_arg *param);
-  virtual int add(class cl_cmdline *cmdline, class cl_console *con);
-  virtual int del(class cl_cmdline *cmdline, class cl_console *con);
-  virtual int get(class cl_cmdline *cmdline, class cl_console *con);
-  virtual int run(class cl_cmdline *cmdline, class cl_console *con);
-  virtual int stop(class cl_cmdline *cmdline, class cl_console *con);
-  virtual int val(class cl_cmdline *cmdline, class cl_console *con);
-};
-
-// RUN
-class cl_run_cmd: public cl_cmd
-{
-public:
-  cl_run_cmd(class cl_sim *asim,
-            char *aname,
-            int  can_rep,
-            char *short_hlp,
-            char *long_hlp):
-    cl_cmd(asim, aname, can_rep, short_hlp, long_hlp) {}
-  virtual int do_work(class cl_cmdline *cmdline, class cl_console *con);
-};
-
-// STEP
-class cl_step_cmd: public cl_cmd
-{
-public:
-  cl_step_cmd(class cl_sim *asim,
-             char *aname,
-             int  can_rep,
-             char *short_hlp,
-             char *long_hlp):
-    cl_cmd(asim, aname, can_rep, short_hlp, long_hlp) {}
-  virtual int do_work(class cl_cmdline *cmdline, class cl_console *con);
-};
-
-// RESET
-class cl_reset_cmd: public cl_cmd
-{
-public:
-  cl_reset_cmd(class cl_sim *asim,
-              char *aname,
-              int  can_rep,
-              char *short_hlp,
-              char *long_hlp):
-    cl_cmd(asim, aname, can_rep, short_hlp, long_hlp) {}
-  virtual int do_work(class cl_cmdline *cmdline, class cl_console *con);
-};
-
-// DUMP
-class cl_dump_cmd: public cl_cmd
-{
-public:
-  cl_dump_cmd(class cl_sim *asim,
-             char *aname,
-             int  can_rep,
-             char *short_hlp,
-             char *long_hlp):
-    cl_cmd(asim, aname, can_rep, short_hlp, long_hlp) {}
-  //cl_dump_cmd(class cl_sim *asim): cl_cmd(asim) {}
-  virtual int do_work(class cl_cmdline *cmdline, class cl_console *con);
-};
-
-// DI
-class cl_di_cmd: public cl_dump_cmd
-{
-public:
-  cl_di_cmd(class cl_sim *asim,
-           char *aname,
-           int  can_rep,
-           char *short_hlp,
-           char *long_hlp):
-    cl_dump_cmd(asim, aname, can_rep, short_hlp, long_hlp) {}
-  virtual int do_work(class cl_cmdline *cmdline, class cl_console *con);
-};
-
-// DX
-class cl_dx_cmd: public cl_dump_cmd
-{
-public:
-  cl_dx_cmd(class cl_sim *asim,
-           char *aname,
-           int  can_rep,
-           char *short_hlp,
-           char *long_hlp):
-    cl_dump_cmd(asim, aname, can_rep, short_hlp, long_hlp) {}
-  virtual int do_work(class cl_cmdline *cmdline, class cl_console *con);
-};
-
-// DCH
-class cl_dch_cmd: public cl_dump_cmd
-{
-public:
-  cl_dch_cmd(class cl_sim *asim,
-            char *aname,
-            int  can_rep,
-            char *short_hlp,
-            char *long_hlp):
-    cl_dump_cmd(asim, aname, can_rep, short_hlp, long_hlp) {}
-  virtual int do_work(class cl_cmdline *cmdline, class cl_console *con);
-};
-
-// DS
-class cl_ds_cmd: public cl_dump_cmd
-{
-public:
-  cl_ds_cmd(class cl_sim *asim,
-           char *aname,
-           int  can_rep,
-           char *short_hlp,
-           char *long_hlp):
-    cl_dump_cmd(asim, aname, can_rep, short_hlp, long_hlp) {}
-  virtual int do_work(class cl_cmdline *cmdline, class cl_console *con);
-};
-
-// DC
-class cl_dc_cmd: public cl_cmd
-{
-public:
-  int last;
-public:
-  cl_dc_cmd(class cl_sim *asim,
-           char *aname,
-           int  can_rep,
-           char *short_hlp,
-           char *long_hlp):
-    cl_cmd(asim, aname, can_rep, short_hlp, long_hlp) {last=0;}
-  virtual int do_work(class cl_cmdline *cmdline, class cl_console *con);
-};
-
-// BREAK
-class cl_break_cmd: public cl_cmd
-{
-public:
-  enum brk_perm perm;
-public:
-  cl_break_cmd(class cl_sim *asim,
-              char *aname,
-              int  can_rep,
-              char *short_hlp,
-              char *long_hlp):
-    cl_cmd(asim, aname, can_rep, short_hlp, long_hlp) { perm= brkFIX; }
-  virtual int do_work(class cl_cmdline *cmdline, class cl_console *con);
-};
-
-// TBREAK
-class cl_tbreak_cmd: public cl_break_cmd
-{
-public:
-  cl_tbreak_cmd(class cl_sim *asim,
-               char *aname,
-               int  can_rep,
-               char *short_hlp,
-               char *long_hlp):
-    cl_break_cmd(asim, aname, can_rep, short_hlp, long_hlp) {perm=brkDYNAMIC;}
-};
-
-// CLEAR
-class cl_clear_cmd: public cl_cmd
-{
-public:
-  cl_clear_cmd(class cl_sim *asim,
-              char *aname,
-              int  can_rep,
-              char *short_hlp,
-              char *long_hlp):
-    cl_cmd(asim, aname, can_rep, short_hlp, long_hlp) {}
-  virtual int do_work(class cl_cmdline *cmdline, class cl_console *con);
-};
-
-// HELP
-class cl_help_cmd: public cl_cmd
-{
-public:
-  cl_help_cmd(class cl_sim *asim,
-             char *aname,
-             int  can_rep,
-             char *short_hlp,
-             char *long_hlp):
-    cl_cmd(asim, aname, can_rep, short_hlp, long_hlp) {}
-  virtual int do_work(class cl_cmdline *cmdline, class cl_console *con);
-};
-
-// QUIT
-class cl_quit_cmd: public cl_cmd
-{
-public:
-  cl_quit_cmd(class cl_sim *asim,
-             char *aname,
-             int  can_rep,
-             char *short_hlp,
-             char *long_hlp):
-    cl_cmd(asim, aname, can_rep, short_hlp, long_hlp) {}
-  virtual int do_work(class cl_cmdline *cmdline, class cl_console *con);
-};
-
-// KILL
-class cl_kill_cmd: public cl_cmd
-{
-public:
-  cl_kill_cmd(class cl_sim *asim,
-             char *aname,
-             int  can_rep,
-             char *short_hlp,
-             char *long_hlp):
-    cl_cmd(asim, aname, can_rep, short_hlp, long_hlp) {}
-  virtual int do_work(class cl_cmdline *cmdline, class cl_console *con);
-};
+COMMAND_METHODS(cl_timer_cmd)
+  void set_ticker(class cl_sim *sim,
+                 class cl_cmd_arg *param);
+  virtual int add(class cl_sim *sim,
+                 class cl_cmdline *cmdline, class cl_console *con);
+  virtual int del(class cl_sim *sim,
+                 class cl_cmdline *cmdline, class cl_console *con);
+  virtual int get(class cl_sim *sim,
+                 class cl_cmdline *cmdline, class cl_console *con);
+  virtual int run(class cl_sim *sim,
+                 class cl_cmdline *cmdline, class cl_console *con);
+  virtual int stop(class cl_sim *sim,
+                  class cl_cmdline *cmdline, class cl_console *con);
+  virtual int val(class cl_sim *sim,
+                 class cl_cmdline *cmdline, class cl_console *con);
+COMMAND_TAIL;
 
 
 #endif