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; }
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; }