예제 #1
0
파일: comx_fd.c 프로젝트: risico/jsmess
UINT8 comx_fd_device::comx_io_r(offs_t offset)
{
	UINT8 data = 0xff;

	if (offset == 2)
	{
		if (m_q)
		{
			data = m_intrq;
		}
		else
		{
			data = wd17xx_r(m_fdc, m_addr);
		}
	}

	return data;
}
예제 #2
0
파일: abc1600.c 프로젝트: cdenix/psmame
UINT8 abc1600_state::read_io(offs_t offset)
{
	address_space *program = m_maincpu->memory().space(AS_PROGRAM);
	UINT8 data = 0;
	
	if (X12)
	{
		if (X11)
		{
			switch (A10_A9_A8)
			{
			case IORD0:
				data = iord0_r(*program, offset);
				break;
			
			default:
				logerror("Unmapped read from virtual I/O %06x\n", offset);
			}
		}
		else
		{
			switch (A10_A9_A8)
			{
			case FLP:
				data = wd17xx_r(m_fdc, A2_A1);
				break;

			case CRT:
				if (A0) 
					data = mc6845_register_r(m_crtc, 0);
				else
					data = mc6845_status_r(m_crtc, 0);
				break;

			case DRT:
				data = z80dart_ba_cd_r(m_dart, A2_A1 ^ 0x03);
				break;

			case DMA0:
				data = m_dma0->read();
				break;

			case DMA1:
				data = m_dma1->read();
				break;

			case DMA2:
				data = m_dma2->read();
				break;

			case SCC:
				data = scc8530_r(m_scc, A1_A2);
				break;

			case CIO:
				data = m_cio->read(*program, A2_A1);
				break;
			}
		}
	}
	else
	{
		// BUS0I, BUS0X, BUS1, BUS2
		logerror("Unmapped read from virtual I/O %06x\n", offset);
	}

	return data;
}