diff options
Diffstat (limited to 'src/mame/drivers/viper.cpp')
-rw-r--r-- | src/mame/drivers/viper.cpp | 136 |
1 files changed, 63 insertions, 73 deletions
diff --git a/src/mame/drivers/viper.cpp b/src/mame/drivers/viper.cpp index 0680a5da6c5..f41c85361a6 100644 --- a/src/mame/drivers/viper.cpp +++ b/src/mame/drivers/viper.cpp @@ -395,35 +395,35 @@ public: DECLARE_READ_LINE_MEMBER(ds2430_unk_r); private: - DECLARE_READ32_MEMBER(epic_r); - DECLARE_WRITE32_MEMBER(epic_w); - DECLARE_WRITE64_MEMBER(unk2_w); - DECLARE_READ64_MEMBER(voodoo3_io_r); - DECLARE_WRITE64_MEMBER(voodoo3_io_w); - DECLARE_READ64_MEMBER(voodoo3_r); - DECLARE_WRITE64_MEMBER(voodoo3_w); - DECLARE_READ64_MEMBER(voodoo3_lfb_r); - DECLARE_WRITE64_MEMBER(voodoo3_lfb_w); - DECLARE_READ8_MEMBER(input_r); - DECLARE_READ64_MEMBER(e70000_r); - DECLARE_WRITE64_MEMBER(e70000_w); - DECLARE_WRITE64_MEMBER(unk1a_w); - DECLARE_WRITE64_MEMBER(unk1b_w); - DECLARE_READ64_MEMBER(e00008_r); - DECLARE_WRITE64_MEMBER(e00008_w); - DECLARE_READ64_MEMBER(e00000_r); - DECLARE_READ64_MEMBER(pci_config_addr_r); - DECLARE_WRITE64_MEMBER(pci_config_addr_w); - DECLARE_READ64_MEMBER(pci_config_data_r); - DECLARE_WRITE64_MEMBER(pci_config_data_w); - DECLARE_READ64_MEMBER(cf_card_data_r); - DECLARE_WRITE64_MEMBER(cf_card_data_w); - DECLARE_READ64_MEMBER(cf_card_r); - DECLARE_WRITE64_MEMBER(cf_card_w); - DECLARE_READ64_MEMBER(ata_r); - DECLARE_WRITE64_MEMBER(ata_w); - DECLARE_READ64_MEMBER(unk_serial_r); - DECLARE_WRITE64_MEMBER(unk_serial_w); + uint32_t epic_r(offs_t offset); + void epic_w(offs_t offset, uint32_t data); + void unk2_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint64_t voodoo3_io_r(offs_t offset, uint64_t mem_mask = ~0); + void voodoo3_io_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint64_t voodoo3_r(offs_t offset, uint64_t mem_mask = ~0); + void voodoo3_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint64_t voodoo3_lfb_r(offs_t offset, uint64_t mem_mask = ~0); + void voodoo3_lfb_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint8_t input_r(offs_t offset); + uint64_t e70000_r(offs_t offset, uint64_t mem_mask = ~0); + void e70000_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + void unk1a_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + void unk1b_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint64_t e00008_r(offs_t offset, uint64_t mem_mask = ~0); + void e00008_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint64_t e00000_r(); + uint64_t pci_config_addr_r(); + void pci_config_addr_w(uint64_t data); + uint64_t pci_config_data_r(); + void pci_config_data_w(uint64_t data); + uint64_t cf_card_data_r(offs_t offset, uint64_t mem_mask = ~0); + void cf_card_data_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint64_t cf_card_r(offs_t offset, uint64_t mem_mask = ~0); + void cf_card_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint64_t ata_r(offs_t offset, uint64_t mem_mask = ~0); + void ata_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint64_t unk_serial_r(offs_t offset, uint64_t mem_mask = ~0); + void unk_serial_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); DECLARE_WRITE_LINE_MEMBER(voodoo_vblank); uint32_t screen_update_viper(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); @@ -664,22 +664,22 @@ void viper_state::mpc8240_pci_w(int function, int reg, uint32_t data, uint32_t m } -READ64_MEMBER(viper_state::pci_config_addr_r) +uint64_t viper_state::pci_config_addr_r() { return m_lpci->read_64be(0, 0xffffffff00000000U); } -WRITE64_MEMBER(viper_state::pci_config_addr_w) +void viper_state::pci_config_addr_w(uint64_t data) { m_lpci->write_64be(0, data, 0xffffffff00000000U); } -READ64_MEMBER(viper_state::pci_config_data_r) +uint64_t viper_state::pci_config_data_r() { return m_lpci->read_64be(1, 0x00000000ffffffffU) << 32; } -WRITE64_MEMBER(viper_state::pci_config_data_w) +void viper_state::pci_config_data_w(uint64_t data) { m_lpci->write_64be(1, data >> 32, 0x00000000ffffffffU); } @@ -877,7 +877,7 @@ void viper_state::epic_update_interrupts() } } -READ32_MEMBER(viper_state::epic_r) +uint32_t viper_state::epic_r(offs_t offset) { int reg; reg = offset * 4; @@ -1074,7 +1074,7 @@ READ32_MEMBER(viper_state::epic_r) return swapendian_int32(ret); } -WRITE32_MEMBER(viper_state::epic_w) +void viper_state::epic_w(offs_t offset, uint32_t data) { int reg; reg = offset * 4; @@ -1355,16 +1355,6 @@ WRITE32_MEMBER(viper_state::epic_w) } } } -/* -READ64_MEMBER(viper_state::epic_64be_r) -{ - return read64be_with_32le_handler(epic_r, space, offset, mem_mask); -} -WRITE64_MEMBER(viper_state::epic_64be_w) -{ - write64be_with_32le_handler(epic_w, space, offset, data, mem_mask); -} -*/ void viper_state::mpc8240_interrupt(int irq) { @@ -1412,7 +1402,7 @@ static const uint8_t cf_card_tuples[] = 0x00, 0x01, 0x00, 0x00, // CCR base (0x00000100) }; -READ64_MEMBER(viper_state::cf_card_data_r) +uint64_t viper_state::cf_card_data_r(offs_t offset, uint64_t mem_mask) { uint64_t r = 0; @@ -1435,7 +1425,7 @@ READ64_MEMBER(viper_state::cf_card_data_r) return r; } -WRITE64_MEMBER(viper_state::cf_card_data_w) +void viper_state::cf_card_data_w(offs_t offset, uint64_t data, uint64_t mem_mask) { if (ACCESSING_BITS_16_31) { @@ -1455,7 +1445,7 @@ WRITE64_MEMBER(viper_state::cf_card_data_w) } } -READ64_MEMBER(viper_state::cf_card_r) +uint64_t viper_state::cf_card_r(offs_t offset, uint64_t mem_mask) { uint64_t r = 0; @@ -1518,7 +1508,7 @@ READ64_MEMBER(viper_state::cf_card_r) return r; } -WRITE64_MEMBER(viper_state::cf_card_w) +void viper_state::cf_card_w(offs_t offset, uint64_t data, uint64_t mem_mask) { #ifdef VIPER_DEBUG_LOG //logerror("%s:compact_flash_w: %08X%08X, %08X, %08X%08X\n", machine().describe_context(), (uint32_t)(data>>32), (uint32_t)(data), offset, (uint32_t)(mem_mask >> 32), (uint32_t)(mem_mask)); @@ -1587,7 +1577,7 @@ WRITE64_MEMBER(viper_state::cf_card_w) } } -WRITE64_MEMBER(viper_state::unk2_w) +void viper_state::unk2_w(offs_t offset, uint64_t data, uint64_t mem_mask) { if (ACCESSING_BITS_56_63) { @@ -1598,7 +1588,7 @@ WRITE64_MEMBER(viper_state::unk2_w) -READ64_MEMBER(viper_state::ata_r) +uint64_t viper_state::ata_r(offs_t offset, uint64_t mem_mask) { uint64_t r = 0; @@ -1620,7 +1610,7 @@ READ64_MEMBER(viper_state::ata_r) return r; } -WRITE64_MEMBER(viper_state::ata_w) +void viper_state::ata_w(offs_t offset, uint64_t data, uint64_t mem_mask) { if (ACCESSING_BITS_16_31) { @@ -1743,33 +1733,33 @@ void viper_state::voodoo3_pci_w(int function, int reg, uint32_t data, uint32_t m } } -READ64_MEMBER(viper_state::voodoo3_io_r) +uint64_t viper_state::voodoo3_io_r(offs_t offset, uint64_t mem_mask) { return read64be_with_32sle_device_handler(read32s_delegate(*m_voodoo, FUNC(voodoo_3_device::banshee_io_r)), offset, mem_mask); } -WRITE64_MEMBER(viper_state::voodoo3_io_w) +void viper_state::voodoo3_io_w(offs_t offset, uint64_t data, uint64_t mem_mask) { // printf("voodoo3_io_w: %08X%08X, %08X at %08X\n", (uint32_t)(data >> 32), (uint32_t)(data), offset, m_maincpu->pc()); write64be_with_32sle_device_handler(write32s_delegate(*m_voodoo, FUNC(voodoo_3_device::banshee_io_w)), offset, data, mem_mask); } -READ64_MEMBER(viper_state::voodoo3_r) +uint64_t viper_state::voodoo3_r(offs_t offset, uint64_t mem_mask) { return read64be_with_32sle_device_handler(read32s_delegate(*m_voodoo, FUNC(voodoo_3_device::banshee_r)), offset, mem_mask); } -WRITE64_MEMBER(viper_state::voodoo3_w) +void viper_state::voodoo3_w(offs_t offset, uint64_t data, uint64_t mem_mask) { // printf("voodoo3_w: %08X%08X, %08X at %08X\n", (uint32_t)(data >> 32), (uint32_t)(data), offset, m_maincpu->pc()); write64be_with_32sle_device_handler(write32s_delegate(*m_voodoo, FUNC(voodoo_3_device::banshee_w)), offset, data, mem_mask); } -READ64_MEMBER(viper_state::voodoo3_lfb_r) +uint64_t viper_state::voodoo3_lfb_r(offs_t offset, uint64_t mem_mask) { return read64be_with_32smle_device_handler(read32sm_delegate(*m_voodoo, FUNC(voodoo_3_device::banshee_fb_r)), offset, mem_mask); } -WRITE64_MEMBER(viper_state::voodoo3_lfb_w) +void viper_state::voodoo3_lfb_w(offs_t offset, uint64_t data, uint64_t mem_mask) { // printf("voodoo3_lfb_w: %08X%08X, %08X at %08X\n", (uint32_t)(data >> 32), (uint32_t)(data), offset, m_maincpu->pc()); @@ -1795,7 +1785,7 @@ TIMER_CALLBACK_MEMBER(viper_state::ds2430_timer_callback) } #ifdef UNUSED_FUNCTION -READ64_MEMBER(viper_state::input_r) +uint64_t viper_state::input_r(offs_t offset, uint64_t mem_mask) { uint64_t r = 0; //return 0;//0x0000400000000000U; @@ -1842,7 +1832,7 @@ READ64_MEMBER(viper_state::input_r) } #endif -READ8_MEMBER(viper_state::input_r) +uint8_t viper_state::input_r(offs_t offset) { return (m_io_ports[offset & 7])->read(); } @@ -1950,7 +1940,7 @@ void viper_state::DS2430_w(int bit) } -READ64_MEMBER(viper_state::e70000_r) +uint64_t viper_state::e70000_r(offs_t offset, uint64_t mem_mask) { if (ACCESSING_BITS_56_63) { @@ -1963,7 +1953,7 @@ READ64_MEMBER(viper_state::e70000_r) return 0; } -WRITE64_MEMBER(viper_state::e70000_w) +void viper_state::e70000_w(offs_t offset, uint64_t data, uint64_t mem_mask) { if (ACCESSING_BITS_56_63) { @@ -1993,7 +1983,7 @@ WRITE64_MEMBER(viper_state::e70000_w) } } -WRITE64_MEMBER(viper_state::unk1a_w) +void viper_state::unk1a_w(offs_t offset, uint64_t data, uint64_t mem_mask) { if (ACCESSING_BITS_56_63) { @@ -2001,7 +1991,7 @@ WRITE64_MEMBER(viper_state::unk1a_w) } } -WRITE64_MEMBER(viper_state::unk1b_w) +void viper_state::unk1b_w(offs_t offset, uint64_t data, uint64_t mem_mask) { if (ACCESSING_BITS_56_63) { @@ -2010,7 +2000,7 @@ WRITE64_MEMBER(viper_state::unk1b_w) } } -READ64_MEMBER(viper_state::e00008_r) +uint64_t viper_state::e00008_r(offs_t offset, uint64_t mem_mask) { uint64_t r = 0; if (ACCESSING_BITS_0_7) @@ -2021,7 +2011,7 @@ READ64_MEMBER(viper_state::e00008_r) return r; } -WRITE64_MEMBER(viper_state::e00008_w) +void viper_state::e00008_w(offs_t offset, uint64_t data, uint64_t mem_mask) { if (ACCESSING_BITS_0_7) { @@ -2029,13 +2019,13 @@ WRITE64_MEMBER(viper_state::e00008_w) } } -READ64_MEMBER(viper_state::e00000_r) +uint64_t viper_state::e00000_r() { uint64_t r = 0;//0xffffffffffffffffU; return r; } -READ64_MEMBER(viper_state::unk_serial_r) +uint64_t viper_state::unk_serial_r(offs_t offset, uint64_t mem_mask) { uint64_t r = 0; if (ACCESSING_BITS_16_31) @@ -2047,7 +2037,7 @@ READ64_MEMBER(viper_state::unk_serial_r) return r; } -WRITE64_MEMBER(viper_state::unk_serial_w) +void viper_state::unk_serial_w(offs_t offset, uint64_t data, uint64_t mem_mask) { if (ACCESSING_BITS_16_31) { @@ -2467,17 +2457,17 @@ void viper_state::init_viperhd() { init_viper(); - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff300000, 0xff300fff, read64_delegate(*this, FUNC(viper_state::ata_r)), write64_delegate(*this, FUNC(viper_state::ata_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff300000, 0xff300fff, read64s_delegate(*this, FUNC(viper_state::ata_r)), write64s_delegate(*this, FUNC(viper_state::ata_w))); } void viper_state::init_vipercf() { init_viper(); - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff000000, 0xff000fff, read64_delegate(*this, FUNC(viper_state::cf_card_data_r)), write64_delegate(*this, FUNC(viper_state::cf_card_data_w))); - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff200000, 0xff200fff, read64_delegate(*this, FUNC(viper_state::cf_card_r)), write64_delegate(*this, FUNC(viper_state::cf_card_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff000000, 0xff000fff, read64s_delegate(*this, FUNC(viper_state::cf_card_data_r)), write64s_delegate(*this, FUNC(viper_state::cf_card_data_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff200000, 0xff200fff, read64s_delegate(*this, FUNC(viper_state::cf_card_r)), write64s_delegate(*this, FUNC(viper_state::cf_card_w))); - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff300000, 0xff300fff, read64_delegate(*this, FUNC(viper_state::unk_serial_r)), write64_delegate(*this, FUNC(viper_state::unk_serial_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff300000, 0xff300fff, read64s_delegate(*this, FUNC(viper_state::unk_serial_r)), write64s_delegate(*this, FUNC(viper_state::unk_serial_w))); } |