X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=sim%2Fucsim%2Fs51.src%2Fuc390cl.h;h=e81d4fcb4d35f99b6ac0b3c61691bd01a6c22490;hb=f27da39dbcab5678aca6d8462f1cc37a643f37e9;hp=b30700b7f8c2a760fe7d428cb6ffc963fe928ac2;hpb=3f0a46279ae4fcac827d3c1d38b8b44701ce1fe0;p=fw%2Fsdcc diff --git a/sim/ucsim/s51.src/uc390cl.h b/sim/ucsim/s51.src/uc390cl.h index b30700b7..e81d4fcb 100644 --- a/sim/ucsim/s51.src/uc390cl.h +++ b/sim/ucsim/s51.src/uc390cl.h @@ -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