Esempio n. 1
0
void z8002_device::WRMEM_B(address_spacenum spacenum, uint32_t addr, uint8_t value)
{
	addr = adjust_addr_for_nonseg_mode(addr);
	if (spacenum == AS_PROGRAM)
		m_program->write_byte(addr, value);
	else
		m_data->write_byte(addr, value);
}
Esempio n. 2
0
INLINE void WRMEM_B(z8000_state *cpustate, address_spacenum spacenum, UINT32 addr, UINT8 value)
{
	addr = adjust_addr_for_nonseg_mode(cpustate, addr);
	if (spacenum == AS_PROGRAM)
		cpustate->program->write_byte(addr, value);
	else
		cpustate->data->write_byte(addr, value);
}
Esempio n. 3
0
uint8_t z8002_device::RDMEM_B(address_spacenum spacenum, uint32_t addr)
{
	addr = adjust_addr_for_nonseg_mode(addr);
	if (spacenum == AS_PROGRAM)
		return m_program->read_byte(addr);
	else
		return m_data->read_byte(addr);
}
Esempio n. 4
0
INLINE UINT8 RDMEM_B(z8000_state *cpustate, address_spacenum spacenum, UINT32 addr)
{
	addr = adjust_addr_for_nonseg_mode(cpustate, addr);
	if (spacenum == AS_PROGRAM)
		return cpustate->program->read_byte(addr);
	else
		return cpustate->data->read_byte(addr);
}
Esempio n. 5
0
void z8002_device::WRMEM_L(address_spacenum spacenum, uint32_t addr, uint32_t value)
{
	addr = adjust_addr_for_nonseg_mode(addr);
	addr &= ~1;
	if (spacenum == AS_PROGRAM)
	{
		m_program->write_word(addr, value >> 16);
		m_program->write_word(addr_add(addr, 2), value & 0xffff);
	}
Esempio n. 6
0
void z8002_device::WRMEM_W(address_spacenum spacenum, UINT32 addr, UINT16 value)
{
	addr = adjust_addr_for_nonseg_mode(addr);
	addr &= ~1;
	if (spacenum == AS_PROGRAM)
		m_program->write_word(addr, value);
	else
		m_data->write_word(addr, value);
}
Esempio n. 7
0
INLINE void WRMEM_L(z8000_state *cpustate, address_spacenum spacenum, UINT32 addr, UINT32 value)
{
	addr = adjust_addr_for_nonseg_mode(cpustate, addr);
	addr &= ~1;
	if (spacenum == AS_PROGRAM)
	{
		cpustate->program->write_word(addr, value >> 16);
		cpustate->program->write_word(addr_add(cpustate, addr, 2), value & 0xffff);
	}
Esempio n. 8
0
uint16_t z8002_device::RDMEM_W(address_spacenum spacenum, uint32_t addr)
{
	addr = adjust_addr_for_nonseg_mode(addr);
	addr &= ~1;
	/* hack for m20 driver: BIOS accesses 0x7f0000 and expects a segmentation violation */
	if (addr >= 0x7f0000) {
		m_irq_req = Z8000_SEGTRAP;
		return 0xffff;
	}
	if (spacenum == AS_PROGRAM)
		return m_program->read_word(addr);
	else
		return m_data->read_word(addr);
}
Esempio n. 9
0
INLINE UINT16 RDMEM_W(z8000_state *cpustate, address_spacenum spacenum, UINT32 addr)
{
	addr = adjust_addr_for_nonseg_mode(cpustate, addr);
	addr &= ~1;
	/* hack for m20 driver: BIOS accesses 0x7f0000 and expects a segmentation violation */
	if (addr >= 0x7f0000) {
		cpustate->irq_req = Z8000_SEGTRAP;
		return 0xffff;
	}
	if (spacenum == AS_PROGRAM)
		return cpustate->program->read_word(addr);
	else
		return cpustate->data->read_word(addr);
}
Esempio n. 10
0
uint32_t z8002_device::RDMEM_L(address_spacenum spacenum, uint32_t addr)
{
	uint32_t result;
	addr = adjust_addr_for_nonseg_mode(addr);
	addr &= ~1;
	if (spacenum == AS_PROGRAM)
	{
		result = m_program->read_word(addr) << 16;
		return result + m_program->read_word(addr_add(addr, 2));
	}
	else
	{
		result = m_data->read_word(addr) << 16;
		return result + m_data->read_word(addr_add(addr, 2));
	}
}
Esempio n. 11
0
INLINE UINT32 RDMEM_L(z8000_state *cpustate, address_spacenum spacenum, UINT32 addr)
{
	UINT32 result;
	addr = adjust_addr_for_nonseg_mode(cpustate, addr);
	addr &= ~1;
	if (spacenum == AS_PROGRAM)
	{
		result = cpustate->program->read_word(addr) << 16;
		return result + cpustate->program->read_word(addr_add(cpustate, addr, 2));
	}
	else
	{
		result = cpustate->data->read_word(addr) << 16;
		return result + cpustate->data->read_word(addr_add(cpustate, addr, 2));
	}
}