summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/viper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/viper.cpp')
-rw-r--r--src/mame/drivers/viper.cpp136
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)));
}