*
* Copyright (C) 1999,99 Drotos Daniel, Talker Bt.
*
- * Written by Karl Bongers karl@turbobit.com
- *
* To contact author send email to drdani@mazsola.iit.uni-miskolc.hu
+ * Other contributors include:
+ * Karl Bongers karl@turbobit.com,
+ * Johan Knol johan.knol@iduna.nl
*
*/
class cl_xa: public cl_uc
{
public:
- cl_mem *ram;
- cl_mem *rom;
+ class cl_address_space *ram;
+ class cl_address_space *rom;
struct t_regs regs;
+ class cl_address_space *sfr, *iram;
+
// for now make it as simple as possible
- TYPE_UBYTE mem_direct[1024*2];
-#ifndef WORDS_BIGENDIAN
- TYPE_UWORD *wmem_direct; /* word pointer at mem_direct */
-#endif
+// TYPE_UBYTE mem_direct[1024*2];
+//#ifndef WORDS_BIGENDIAN
+// TYPE_UWORD *wmem_direct; /* word pointer at mem_direct */
+//#endif
public:
cl_xa(class cl_sim *asim);
virtual int init(void);
virtual char *id_string(void);
- virtual t_addr get_mem_size(enum mem_class type);
+ //virtual class cl_m *mk_mem(enum mem_class type, char *class_name);
+ //virtual t_addr get_mem_size(enum mem_class type);
virtual void mk_hw_elements(void);
+ virtual void make_memories(void);
virtual struct dis_entry *dis_tbl(void);
int *parms,
int *mnemonic);
- virtual char *disass(t_addr addr, char *sep);
- virtual void print_regs(class cl_console *con);
+ virtual const char *disass(t_addr addr, const char *sep);
+ virtual void print_regs(class cl_console_base *con);
virtual int exec_inst(void);
virtual int get_reg(int word_flag, unsigned int index);
+
+ virtual void store1(t_addr addr, unsigned char val);
+ virtual void store2(t_addr addr, unsigned short val);
+ virtual unsigned char get1(t_addr addr);
+ virtual unsigned short get2(t_addr addr);
+
virtual bool get_bit(int bit);
virtual void set_bit(int bit, int value);