* sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
[fw/sdcc] / sim / ucsim / s51.src / uc390cl.h
index 8cd93fb7087318197f9b47e14a900cccda7d167c..ca8e4f4f9baa0e8ba580293c706b10bd6fbe6b12 100644 (file)
@@ -37,7 +37,8 @@ class t_uc390: public t_uc52
 {
 public:
   t_uc390(int Itype, int Itech, class cl_sim *asim);
-  int flat24_flag; /* true if flat24 mode code: ((ACON:9Dh & 3) == 0x2) */
+
+  virtual void   clear_sfr(void);
 
   // making objects
   virtual t_addr get_mem_size (enum mem_class type);
@@ -49,7 +50,6 @@ public:
   virtual void  set_mem (enum mem_class type, t_addr addr, t_mem val);
 
   /* mods for dual-dptr */
-  virtual int inst_inc_addr(uchar code);
   virtual int inst_inc_dptr(uchar code);
   virtual int inst_jmp_$a_dptr(uchar code);
   virtual int inst_mov_dptr_$data(uchar code);
@@ -69,14 +69,22 @@ 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);
   virtual void   print_regs(class cl_console *con);
 
 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);
 };
 
 /* End of s51.src/uc390cl.h */