+
+ virtual t_mem *get_data(void) { return(data); }
+ virtual t_mem get_mask(void) { return(mask); }
+ virtual TYPE_UBYTE get_flags(void);
+ virtual bool get_flag(enum cell_flag flag);
+ virtual void set_flags(TYPE_UBYTE what);
+ virtual void set_flag(enum cell_flag flag, bool val);
+
+ virtual void un_decode(void);
+ virtual void decode(class cl_memory_chip *chip, t_addr addr);
+
+ virtual t_mem read(void);
+ virtual t_mem read(enum hw_cath skip);
+ virtual t_mem get(void);
+ virtual t_mem write(t_mem val);
+ virtual t_mem set(t_mem val);
+
+ virtual t_mem add(long what);
+ virtual t_mem wadd(long what);
+
+ virtual void set_bit1(t_mem bits);
+ virtual void set_bit0(t_mem bits);
+
+ virtual void append_operator(class cl_memory_operator *op);
+ virtual void prepend_operator(class cl_memory_operator *op);
+ virtual void del_operator(class cl_brk *brk);
+
+ virtual class cl_memory_cell *add_hw(class cl_hw *hw, int *ith, t_addr addr);
+ //virtual class cl_hw *get_hw(int ith);
+ virtual class cl_event_handler *get_event_handler(void);
+};
+
+class cl_dummy_cell: public cl_memory_cell
+{
+public:
+ cl_dummy_cell(void): cl_memory_cell() {}
+
+ virtual t_mem write(t_mem val);
+ virtual t_mem set(t_mem val);
+};
+
+
+/*
+ * Address space
+ */
+
+class cl_memory_chip;
+
+class cl_address_space: public cl_memory
+{
+protected:
+ class cl_memory_cell **cells, *dummy;
+public:
+ class cl_decoder_list *decoders;
+public:
+ cl_address_space(const char *id, t_addr astart, t_addr asize, int awidth);
+ virtual ~cl_address_space(void);
+
+ virtual bool is_address_space(void) { return(DD_TRUE); }