diff options
Diffstat (limited to 'src/devices/machine/pci9050.cpp')
-rw-r--r-- | src/devices/machine/pci9050.cpp | 44 |
1 files changed, 21 insertions, 23 deletions
diff --git a/src/devices/machine/pci9050.cpp b/src/devices/machine/pci9050.cpp index e65434d3f5a..c3425d01a4b 100644 --- a/src/devices/machine/pci9050.cpp +++ b/src/devices/machine/pci9050.cpp @@ -41,7 +41,7 @@ void pci9050_device::map(address_map &map) pci9050_device::pci9050_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : pci_device(mconfig, PCI9050, tag, owner, clock) - , m_user_input_handler(*this), m_user_output_handler(*this) + , m_user_input_handler(*this, 0), m_user_output_handler(*this) { set_ids(0x10b59050, 0x01, 0x06800000, 0x10b59050); for(int i=0; i<4; i++) { @@ -69,8 +69,6 @@ void pci9050_device::device_start() else add_map(0, M_MEM | M_DISABLED, address_map_constructor(), nullptr); - m_user_input_handler.resolve(); - m_user_output_handler.resolve(); // Save states save_item(NAME(m_lasrr)); save_item(NAME(m_lasba)); @@ -168,106 +166,106 @@ void pci9050_device::remap_rom() } } -READ32_MEMBER (pci9050_device::lasrr_r) +uint32_t pci9050_device::lasrr_r(offs_t offset) { return m_lasrr[offset]; } -WRITE32_MEMBER(pci9050_device::lasrr_w) +void pci9050_device::lasrr_w(offs_t offset, uint32_t data) { logerror("%s:PCI9050 local bus %d range = %08x: %s flags %d pf %d addr bits 27-4 %08x\n", machine().describe_context(), offset, data, (data & 1) ? "I/O" : "MEM", (data & 6)>>1, (data & 8)>>3, data & 0xfffffff); m_lasrr[offset] = data; remap_local(offset); } -READ32_MEMBER (pci9050_device::eromrr_r) +uint32_t pci9050_device::eromrr_r() { return m_eromrr; } -WRITE32_MEMBER(pci9050_device::eromrr_w) +void pci9050_device::eromrr_w(uint32_t data) { logerror("%s:PCI9050 ROM range = %08x: addr bits 27-11 %08x\n", machine().describe_context(), data, data & 0xfffff800); m_eromrr = data; remap_rom(); } -READ32_MEMBER (pci9050_device::lasba_r) +uint32_t pci9050_device::lasba_r(offs_t offset) { return m_lasba[offset]; } -WRITE32_MEMBER(pci9050_device::lasba_w) +void pci9050_device::lasba_w(offs_t offset, uint32_t data) { logerror("%s:PCI9050 local bus %d base = %08x: enable %d remap %08x\n", machine().describe_context(), offset, data, data&1, data & 0x0ffffffe); m_lasba[offset] = data; remap_local(offset); } -READ32_MEMBER (pci9050_device::eromba_r) +uint32_t pci9050_device::eromba_r() { return m_eromba; } -WRITE32_MEMBER(pci9050_device::eromba_w) +void pci9050_device::eromba_w(uint32_t data) { logerror("%s:PCI9050 ROM base = %08x: remap %08x\n", machine().describe_context(), data, data & 0x0ffff800); m_eromba = data; remap_rom(); } -READ32_MEMBER (pci9050_device::lasbrd_r) +uint32_t pci9050_device::lasbrd_r(offs_t offset) { return m_lasbrd[offset]; } -WRITE32_MEMBER(pci9050_device::lasbrd_w) +void pci9050_device::lasbrd_w(offs_t offset, uint32_t data) { logerror("%s:PCI9050 local bus %d descriptors = %08x: burst %d prefetch %d width %d, endian %s, endian mode %d\n", machine().describe_context(), offset, data, data&1, (data >> 5) & 1, (data >> 22) & 3, ((data >> 24) & 1) ? "BE" : "LE", (data >> 25) & 1); m_lasbrd[offset] = data; remap_local(offset); } -READ32_MEMBER (pci9050_device::erombrd_r) +uint32_t pci9050_device::erombrd_r() { return m_erombrd; } -WRITE32_MEMBER(pci9050_device::erombrd_w) +void pci9050_device::erombrd_w(uint32_t data) { logerror("%s:PCI9050 ROM descriptors = %08x: burst %d prefetch %d bits %d, endian %s, endian mode %d\n", machine().describe_context(), data, data&1, (data >> 5) & 1, (data >> 22) & 3, ((data >> 24) & 1) ? "BE" : "LE", (data >> 25) & 1); m_erombrd = data; remap_rom(); } -READ32_MEMBER (pci9050_device::csbase_r) +uint32_t pci9050_device::csbase_r(offs_t offset) { return m_csbase[offset]; } -WRITE32_MEMBER(pci9050_device::csbase_w) +void pci9050_device::csbase_w(offs_t offset, uint32_t data) { logerror("%s:PCI9050 chip select %d base = %08x: enable %d size %08x\n", machine().describe_context(), offset, data, data&1, data&0xfffffffe); m_csbase[offset] = data; remap_local(offset); } -READ32_MEMBER (pci9050_device::intcsr_r) +uint32_t pci9050_device::intcsr_r() { logerror("%s:PCI9050 IRQ CSR read %08x\n", machine().describe_context(), m_intcsr); return m_intcsr; } -WRITE32_MEMBER(pci9050_device::intcsr_w) +void pci9050_device::intcsr_w(uint32_t data) { logerror("%s:PCI9050 IRQ CSR write %08x\n", machine().describe_context(), data); m_intcsr = data; remap_rom(); } -READ32_MEMBER (pci9050_device::cntrl_r) +uint32_t pci9050_device::cntrl_r() { - if (!m_user_input_handler.isnull()) + if (!m_user_input_handler.isunset()) { int readData = m_user_input_handler(); for (int userIndex = 0; userIndex < 4; userIndex++) @@ -279,7 +277,7 @@ READ32_MEMBER (pci9050_device::cntrl_r) return m_cntrl; } -WRITE32_MEMBER(pci9050_device::cntrl_w) +void pci9050_device::cntrl_w(uint32_t data) { if (0) logerror("%s:PCI9050 CNTRL write %08x\n", machine().describe_context(), data); @@ -288,7 +286,7 @@ WRITE32_MEMBER(pci9050_device::cntrl_w) remap_rom(); if ((oldData ^ m_cntrl) & 0x3000) remap_cb(); - if (!m_user_output_handler.isnull()) { + if (!m_user_output_handler.isunset()) { int userData = 0; for (int userIndex = 0; userIndex < 4; userIndex++) userData |= ((m_cntrl >> (2 + userIndex * 3)) & 1) << userIndex; |