Пример #1
0
void pla_device::device_start()
{
	assert(m_terms < MAX_TERMS);
	assert(m_inputs < 32 && m_outputs <= 32);

	if (m_input_mask == 0)
		m_input_mask = ((UINT64)1 << m_inputs) - 1;
	m_input_mask = ((UINT64)m_input_mask << 32) | m_input_mask;

	// parse fusemap
	parse_fusemap();

	// initialize cache
	m_cache2_ptr = 0;
	for (auto & elem : m_cache2)
		elem = 0x80000000;

	m_cache_size = 0;
	int csize = 1 << ((m_inputs > MAX_CACHE_BITS) ? MAX_CACHE_BITS : m_inputs);
	m_cache.resize(csize);
	for (int i = 0; i < csize; i++)
		m_cache[i] = read(i);

	m_cache_size = csize;
}
Пример #2
0
void pls100_device::device_start()
{
	// parse fusemap
	assert(machine().region(tag()) != NULL);
	parse_fusemap();

	// register for state saving
	save_item(NAME(m_i));
	save_item(NAME(m_s));
}
Пример #3
0
void pla_device::device_start()
{
	assert(machine().root_device().memregion(tag()) != NULL);

	// parse fusemap
	parse_fusemap();

	// clear cache
	for (int i = 0; i < CACHE_SIZE; i++)
	{
		m_cache[i] = 0;
	}

	m_cache_ptr = 0;
}