Beispiel #1
0
        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";
            }
        }
Beispiel #2
0
 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;
 }
Beispiel #3
0
        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
        }
Beispiel #4
0
        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;
        }
Beispiel #5
0
        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)