version 0.5.2
[fw/sdcc] / sim / ucsim / s51.src / uc390cl.h
index ca8e4f4f9baa0e8ba580293c706b10bd6fbe6b12..e81d4fcb4d35f99b6ac0b3c61691bd01a6c22490 100644 (file)
@@ -33,35 +33,37 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 
 #include "uc52cl.h"
 
-class t_uc390: public t_uc52
+class cl_uc390: public cl_uc52
 {
 public:
-  t_uc390(int Itype, int Itech, class cl_sim *asim);
+  cl_uc390(int Itype, int Itech, class cl_sim *asim);
+  virtual void mk_hw_elements (void);
+  virtual void make_memories(void);
 
-  virtual void   clear_sfr(void);
+  virtual void clear_sfr (void);
 
   // making objects
-  virtual t_addr get_mem_size (enum mem_class type);
+  //virtual t_addr get_mem_size (enum mem_class type);
 
   // manipulating memories
-  virtual ulong read_mem (enum mem_class type, t_mem addr);
-  virtual ulong get_mem (enum mem_class type, t_addr addr);
-  virtual void  write_mem (enum mem_class type, t_addr addr, t_mem val);
-  virtual void  set_mem (enum mem_class type, t_addr addr, t_mem val);
+  virtual t_mem read_mem (char *id/*enum mem_class type*/, t_addr addr);
+  virtual t_mem get_mem (char *id/*enum mem_class type*/, t_addr addr);
+  virtual void  write_mem (char *id/*enum mem_class type*/, t_addr addr, t_mem val);
+  virtual void  set_mem (char *id/*enum mem_class type*/, t_addr addr, t_mem val);
 
   /* mods for dual-dptr */
   virtual int inst_inc_dptr(uchar code);
-  virtual int inst_jmp_$a_dptr(uchar code);
-  virtual int inst_mov_dptr_$data(uchar code);
-  virtual int inst_movc_a_$a_dptr(uchar code);
-  virtual int inst_movx_a_$dptr(uchar code);
-  virtual int inst_movx_$dptr_a(uchar code);
+  virtual int inst_jmp_Sa_dptr(uchar code);
+  virtual int inst_mov_dptr_Sdata(uchar code);
+  virtual int inst_movc_a_Sa_dptr(uchar code);
+  virtual int inst_movx_a_Sdptr(uchar code);
+  virtual int inst_movx_Sdptr_a(uchar code);
 
   /* mods for flat24 */
   virtual int inst_ajmp_addr(uchar code);
   virtual int inst_ljmp(uchar code);
   virtual int inst_acall_addr(uchar code);
-  virtual int inst_lcall(uchar code, uint addr);
+  virtual int inst_lcall(uchar code, uint addr, bool intr);/* 12 */
   virtual int inst_ret(uchar code);
   virtual int inst_reti(uchar code);
 
@@ -69,9 +71,6 @@ public:
   virtual int inst_push (uchar code);
   virtual int inst_pop (uchar code);
 
-  /* miscellaneous */
-  virtual void   proc_write(uchar *addr);
-
   /* mods for disassembly of flat24 */
   virtual struct dis_entry *dis_tbl(void);
   virtual char * disass(t_addr addr, char *sep);
@@ -79,12 +78,8 @@ public:
 
 protected:
   int flat24_flag; /* true if processor == ds390f */
-  unsigned long ctm_ticks; /* mini-state-machine for "crystal multiplier" */
-  unsigned long timed_access_ticks;
-  int timed_access_state; /* 0: idle; 1: $aa written; 2: $55 written */
-  virtual int push_byte (uchar uc);
-  virtual uchar pop_byte (int *Pres);
-  virtual uchar read(uchar *addr);
+  virtual void push_byte (t_mem uc);
+  virtual t_mem pop_byte (void);
 };
 
 /* End of s51.src/uc390cl.h */