diff options
-rw-r--r-- | src/mame/machine/iteagle_fpga.cpp | 29 | ||||
-rw-r--r-- | src/mame/machine/iteagle_fpga.h | 9 |
2 files changed, 29 insertions, 9 deletions
diff --git a/src/mame/machine/iteagle_fpga.cpp b/src/mame/machine/iteagle_fpga.cpp index b86d1e44dc8..be8ff4f64a6 100644 --- a/src/mame/machine/iteagle_fpga.cpp +++ b/src/mame/machine/iteagle_fpga.cpp @@ -33,9 +33,22 @@ void iteagle_fpga_device::ram_map(address_map &map) map(0x10000, 0x1ffff).rw(FUNC(iteagle_fpga_device::e1_ram_r), FUNC(iteagle_fpga_device::e1_ram_w)); } -iteagle_fpga_device::iteagle_fpga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, ITEAGLE_FPGA, tag, owner, clock) - , m_rtc(*this, "eagle2_rtc"), m_e1_nvram(*this, "eagle1_bram"), m_scc1(*this, AM85C30_TAG), m_screen(*this, finder_base::DUMMY_TAG), m_cpu(*this, finder_base::DUMMY_TAG), m_version(0), m_seq_init(0) +iteagle_fpga_device::iteagle_fpga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + pci_device(mconfig, ITEAGLE_FPGA, tag, owner, clock), + m_rtc(*this, "eagle2_rtc"), + m_e1_nvram(*this, "eagle1_bram"), + m_scc1(*this, AM85C30_TAG), + m_screen(*this, finder_base::DUMMY_TAG), + m_cpu(*this, finder_base::DUMMY_TAG), + m_io_system(*this, ":SYSTEM"), + m_io_in1(*this, ":IN1"), + m_io_sw5(*this, ":SW5"), + m_io_trackx(*this, ":TRACKX1"), + m_io_tracky(*this, ":TRACKY1"), + m_io_gunx(*this, ":GUNX1"), + m_io_guny(*this, ":GUNY1"), + m_version(0), + m_seq_init(0) { set_ids(0x55cc33aa, 0xaa, 0xaaaaaa, 0x00); } @@ -205,8 +218,8 @@ WRITE_LINE_MEMBER(iteagle_fpga_device::vblank_update) if (1 || (m_fpga_regs[0x14 / 4] & 0x01)) { // Set the gun timer to first fire const rectangle &visarea = m_screen->visible_area(); - m_gun_x = machine().root_device().ioport("GUNX1")->read() * (visarea.width() - 14) / 512; - m_gun_y = machine().root_device().ioport("GUNY1")->read() * visarea.height() / 512; + m_gun_x = m_io_gunx->read() * (visarea.width() - 14) / 512; + m_gun_y = m_io_guny->read() * visarea.height() / 512; m_timer->adjust(attotime::zero); //m_timer->adjust(m_screen->time_until_pos(std::max(0, m_gun_y - BEAM_DY), std::max(0, m_gun_x - BEAM_DX))); //printf("w: %d h: %d x: %d y: %d\n", visarea.width(), visarea.height(), m_gun_x, m_gun_y); @@ -241,17 +254,17 @@ READ32_MEMBER( iteagle_fpga_device::fpga_r ) switch (offset) { case 0x00/4: - result = ((machine().root_device().ioport("SYSTEM")->read()&0xffff)<<16) | (machine().root_device().ioport("IN1")->read()&0xffff); + result = ((m_io_system->read()&0xffff)<<16) | (m_io_in1->read()&0xffff); if (LOG_FPGA && m_prev_reg!=offset) logerror("%s:fpga_r offset %04X = %08X & %08X\n", machine().describe_context(), offset*4, result, mem_mask); break; case 0x04/4: - result = (result & 0xFF0FFFFF) | ((machine().root_device().ioport("SW5")->read()&0xf)<<20); + result = (result & 0xFF0FFFFF) | ((m_io_sw5->read()&0xf)<<20); if (0 && LOG_FPGA && !ACCESSING_BITS_0_7) logerror("%s:fpga_r offset %04X = %08X & %08X\n", machine().describe_context(), offset*4, result, mem_mask); break; case 0x08/4: - result = ((machine().root_device().ioport("TRACKY1")->read()&0xff)<<8) | (machine().root_device().ioport("TRACKX1")->read()&0xff); + result = ((m_io_tracky->read()&0xff)<<8) | (m_io_trackx->read()&0xff); if (LOG_FPGA && m_prev_reg!=offset) logerror("%s:fpga_r offset %04X = %08X & %08X\n", machine().describe_context(), offset*4, result, mem_mask); break; diff --git a/src/mame/machine/iteagle_fpga.h b/src/mame/machine/iteagle_fpga.h index 3f2a33d44bf..c6ad0285edc 100644 --- a/src/mame/machine/iteagle_fpga.h +++ b/src/mame/machine/iteagle_fpga.h @@ -71,9 +71,16 @@ private: optional_device<nvram_device> m_e1_nvram; required_device<scc85c30_device> m_scc1; required_device<screen_device> m_screen; + required_device<device_execute_interface> m_cpu; + required_ioport m_io_system; + required_ioport m_io_in1; + required_ioport m_io_sw5; + optional_ioport m_io_trackx; + optional_ioport m_io_tracky; + optional_ioport m_io_gunx; + optional_ioport m_io_guny; emu_timer * m_timer; - required_device<device_execute_interface> m_cpu; int m_irq_num; int m_serial_irq_num; |