version 0.5.2
[fw/sdcc] / sim / ucsim / s51.src / uc390cl.h
index b30700b7f8c2a760fe7d428cb6ffc963fe928ac2..e81d4fcb4d35f99b6ac0b3c61691bd01a6c22490 100644 (file)
@@ -2,7 +2,7 @@
  * Simulator of microcontrollers (uc390cl.h)
  *
  * Copyright (C) 1999,99 Drotos Daniel, Talker Bt.
- * 
+ *
  * To contact author send email to drdani@mazsola.iit.uni-miskolc.hu
  *
  * uc390cl.h - implemented by Karl Bongers, karl@turbobit.com
@@ -33,34 +33,55 @@ 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);
-  int flat24_flag; /* true if flat24 mode code: ((ACON:9Dh & 3) == 0x2) */
-
-/* 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);
-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);
-
-/* 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_ret(uchar code);
-virtual int inst_reti(uchar code);
-
-/* mods for disassembly of flat24 */
-virtual struct dis_entry *dis_tbl(void);
-virtual char * disass(t_addr addr, char *sep);
+  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);
+
+  // making objects
+  //virtual t_addr get_mem_size (enum mem_class type);
+
+  // manipulating memories
+  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_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, bool intr);/* 12 */
+  virtual int inst_ret(uchar code);
+  virtual int inst_reti(uchar code);
 
+  /* mods for 10 bit stack */
+  virtual int inst_push (uchar code);
+  virtual int inst_pop (uchar code);
+
+  /* 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 */
+  virtual void push_byte (t_mem uc);
+  virtual t_mem pop_byte (void);
 };
 
-#endif
 /* End of s51.src/uc390cl.h */
+
+#endif