* sim/ucsim/*.*, sim/ucsim/configure, sim/ucsim/configure.in:
[fw/sdcc] / sim / ucsim / sim.src / argcl.h
index 5bc0bbbea3c0785318bfdd12e1a6fe4183cca72f..4b7d1363456501dc352488a2c1a431ee10a43efd 100644 (file)
@@ -49,17 +49,17 @@ public:
 
 public:  
   cl_arg(long lv);
-  cl_arg(char *lv);
+  cl_arg(const char *lv);
   cl_arg(double fv);
   cl_arg(void *pv);
-  ~cl_arg(void);
+  virtual ~cl_arg(void);
 
   virtual bool get_ivalue(long *value);
   virtual char *get_svalue(void);
   virtual double get_fvalue(void);
   virtual void *get_pvalue(void);
   virtual bool get_bit_address(class cl_uc *uc, // input
-                              class cl_mem **mem, // outputs
+                              class cl_address_space **mem, // outputs
                               t_addr *mem_addr,
                               t_mem *bit_mask) { return(DD_FALSE); }
 };
@@ -73,13 +73,16 @@ class cl_cmd_arg: public cl_arg
 {
 public:
   //class cl_uc *uc;
-
   bool interpreted_as_string;
   union {
     long number;
     t_addr address;
     t_mem data;
-    class cl_mem *memory;
+    struct {
+      class cl_memory *memory;
+      class cl_address_space *address_space;
+      class cl_memory_chip *memchip;
+    } memory;
     class cl_hw *hw;
     struct {
       int len;
@@ -90,7 +93,7 @@ public:
       int len;
     } data_list;
     struct {
-      class cl_mem *mem;
+      class cl_address_space *mem;
       t_addr mem_address;
       t_mem mask;
     } bit;
@@ -99,9 +102,9 @@ public:
 public:
   cl_cmd_arg(/*class cl_uc *iuc,*/ long i): cl_arg(i)
   { /*uc= iuc;*/ interpreted_as_string= DD_FALSE; }
-  cl_cmd_arg(/*class cl_uc *iuc,*/ char *s): cl_arg(s)
+  cl_cmd_arg(/*class cl_uc *iuc,*/ const char *s): cl_arg(s)
   { /*uc= iuc;*/ interpreted_as_string= DD_FALSE; }
-  ~cl_cmd_arg(void);
+  virtual ~cl_cmd_arg(void);
 
   virtual int is_string(void) { return(DD_FALSE); }
   virtual bool get_address(class cl_uc *uc, t_addr *addr) { return(DD_FALSE); }
@@ -121,7 +124,7 @@ public:
 
   virtual bool get_address(class cl_uc *uc, t_addr *addr);
   virtual bool get_bit_address(class cl_uc *uc, // input
-                              class cl_mem **mem, // outputs
+                              class cl_address_space **mem, // outputs
                               t_addr *mem_addr,
                               t_mem *bit_mask);
   virtual bool as_string(void);
@@ -130,14 +133,15 @@ public:
 class cl_cmd_sym_arg: public cl_cmd_arg
 {
 public:
-  cl_cmd_sym_arg(/*class cl_uc *iuc,*/ char *sym);
+  cl_cmd_sym_arg(/*class cl_uc *iuc,*/ const char *sym);
 
   virtual bool get_address(class cl_uc *uc, t_addr *addr);
   virtual bool get_bit_address(class cl_uc *uc, // input
-                              class cl_mem **mem, // outputs
+                              class cl_address_space **mem, // outputs
                               t_addr *mem_addr,
                               t_mem *bit_mask);
   virtual bool as_address(class cl_uc *uc);
+  virtual bool as_number(void) { return(DD_FALSE); }
   virtual bool as_string(void);
   virtual bool as_hw(class cl_uc *uc);
 };
@@ -145,9 +149,10 @@ public:
 class cl_cmd_str_arg: public cl_cmd_arg
 {
 public:
-  cl_cmd_str_arg(/*class cl_uc *iuc,*/ char *str);
+  cl_cmd_str_arg(/*class cl_uc *iuc,*/ const char *str);
 
   virtual int is_string(void) { return(1); }
+  virtual bool as_number(void) { return(DD_FALSE); }
 };
 
 class cl_cmd_bit_arg: public cl_cmd_arg
@@ -158,11 +163,11 @@ public:
 public:
   cl_cmd_bit_arg(/*class cl_uc *iuc,*/
                 class cl_cmd_arg *asfr, class cl_cmd_arg *abit);
-  ~cl_cmd_bit_arg(void);
+  virtual ~cl_cmd_bit_arg(void);
 
   virtual bool get_address(class cl_uc *uc, t_addr *addr);
   virtual bool get_bit_address(class cl_uc *uc, // input
-                              class cl_mem **mem, // outputs
+                              class cl_address_space **mem, // outputs
                               t_addr *mem_addr,
                               t_mem *bit_mask);
 };
@@ -170,12 +175,12 @@ public:
 class cl_cmd_array_arg: public cl_cmd_arg
 {
 public:
-  class cl_cmd_arg *name, *index;
+  class cl_cmd_arg *name_arg, *index;
 
 public:
   cl_cmd_array_arg(/*class cl_uc *iuc,*/
                   class cl_cmd_arg *aname, class cl_cmd_arg *aindex);
-  ~cl_cmd_array_arg(void);
+  virtual ~cl_cmd_array_arg(void);
   virtual bool as_hw(class cl_uc *uc);
 };
 
@@ -184,7 +189,7 @@ public:
  * Program arguments
  */
 
-class cl_prg_arg: public cl_arg
+/*class cl_prg_arg: public cl_arg
 {
 public:
   char short_name;
@@ -195,26 +200,26 @@ public:
   cl_prg_arg(char sn, char *ln, char *lv);
   cl_prg_arg(char sn, char *ln, double fv);
   cl_prg_arg(char sn, char *ln, void *pv);
-  ~cl_prg_arg(void);
-};
+  virtual ~cl_prg_arg(void);
+};*/
 
 
 /*
  * List of arguments
  */
 
-class cl_arguments: public cl_list
+/*class cl_arguments: public cl_list
 {
 public:
   cl_arguments(void): cl_list(5, 5) {}
 
-  int arg_avail(char name);
-  int arg_avail(char *name);
+  int arg_avail(char nam);
+  int arg_avail(char *nam);
   virtual long get_iarg(char sname, char *lname);
   virtual char *get_sarg(char sname, char *lname);
   virtual double get_farg(char sname, char *lname);
   virtual void *get_parg(char sname, char *lname);
-};
+};*/
 
 
 #endif