bool m_default_format; // true if we are still using default format // construction/destruction //------------------------------------------------- // device_state_entry - constructor //------------------------------------------------- public device_state_entry(int index, string symbol, u8 size, u64 sizemask, u8 flags, device_state_interface dev) { m_device_state = dev; m_index = index; m_datamask = sizemask; m_datasize = size; m_flags = flags; m_symbol = symbol; m_default_format = true; assert(size == 1 || size == 2 || size == 4 || size == 8 || (flags & DSF_FLOATING_POINT) != 0); format_from_mask(); // override well-known symbols if (index == STATE_GENPCBASE) { m_symbol = "CURPC"; } else if (index == STATE_GENFLAGS) { m_symbol = "CURFLAGS"; } }
public device_state_entry(int index, device_state_interface dev) { m_device_state = dev; m_index = index; m_datamask = 0; m_datasize = 0; m_flags = DSF_DIVIDER | DSF_READONLY; m_symbol = ""; m_default_format = true; }
ItemType m_data; // reference to where the data lives //ItemType & m_data; // reference to where the data lives // construction/destruction public device_state_register(int index, string symbol, ItemType data, device_state_interface dev) : base(index, symbol, ops.sizeof_(), ops.max(), ops.flags(), dev) //: device_state_entry(index, symbol, sizeof(ItemType), std::numeric_limits<typename std::make_unsigned<ItemType>::type>::max(), 0, dev), { m_data = data; //throw new emu_unimplemented(); #if false static_assert(std::is_integral <ItemType>().value, "Registration of non-integer types is not currently supported"); #endif }
setter_func m_setter; // function to store the data // construction/destruction public device_functional_state_register(int index, string symbol, getter_func getter, setter_func setter, device_state_interface dev) //device_functional_state_register(int index, const char *symbol, getter_func &&getter, setter_func &&setter, device_state_interface *dev) : base(index, symbol, ops.sizeof_(), ops.max(), ops.flags(), dev) //: device_state_entry(index, symbol, sizeof(ItemType), std::numeric_limits<ItemType>::max(), 0, dev), { m_getter = getter; m_setter = setter; }
ItemType m_data; // reference to where the data lives // construction/destruction device_state_register(int index, string symbol, ItemType data, device_state_interface dev) : base(index, symbol, sizeof(ItemType), std::numeric_limits <ItemType>::max(), 0, dev)