summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/39in1.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/39in1.cpp')
-rw-r--r--src/mame/drivers/39in1.cpp39
1 files changed, 14 insertions, 25 deletions
diff --git a/src/mame/drivers/39in1.cpp b/src/mame/drivers/39in1.cpp
index f2d7386883e..75f9c3fef84 100644
--- a/src/mame/drivers/39in1.cpp
+++ b/src/mame/drivers/39in1.cpp
@@ -88,24 +88,14 @@ READ32_MEMBER(_39in1_state::eeprom_r)
return (m_eeprom->do_read() << 5) | (1 << 1); // Must be on. Probably a DIP switch.
}
-WRITE32_MEMBER(_39in1_state::eeprom_set_w)
+WRITE32_MEMBER(_39in1_state::eeprom_w)
{
- if (BIT(data, 2))
+ if (BIT(mem_mask, 2))
m_eeprom->cs_write(ASSERT_LINE);
- if (BIT(data, 3))
- m_eeprom->clk_write(ASSERT_LINE);
- if (BIT(data, 4))
- m_eeprom->di_write(1);
-}
-
-WRITE32_MEMBER(_39in1_state::eeprom_clear_w)
-{
- if (BIT(data, 2))
- m_eeprom->cs_write(ASSERT_LINE);
- if (BIT(data, 3))
- m_eeprom->clk_write(CLEAR_LINE);
- if (BIT(data, 4))
- m_eeprom->di_write(0);
+ if (BIT(mem_mask, 3))
+ m_eeprom->clk_write(BIT(data, 3) ? ASSERT_LINE : CLEAR_LINE);
+ if (BIT(mem_mask, 4))
+ m_eeprom->di_write(BIT(data, 4));
}
READ32_MEMBER(_39in1_state::cpld_r)
@@ -206,12 +196,12 @@ void _39in1_state::_39in1_map(address_map &map)
map(0x00000000, 0x0007ffff).rom();
map(0x00400000, 0x005fffff).rom().region("data", 0);
map(0x04000000, 0x047fffff).rw(FUNC(_39in1_state::cpld_r), FUNC(_39in1_state::cpld_w));
- map(0x40000000, 0x400002ff).rw(m_pxa_periphs, FUNC(pxa255_periphs_device::pxa255_dma_r), FUNC(pxa255_periphs_device::pxa255_dma_w));
- map(0x40400000, 0x40400083).rw(m_pxa_periphs, FUNC(pxa255_periphs_device::pxa255_i2s_r), FUNC(pxa255_periphs_device::pxa255_i2s_w));
- map(0x40a00000, 0x40a0001f).rw(m_pxa_periphs, FUNC(pxa255_periphs_device::pxa255_ostimer_r), FUNC(pxa255_periphs_device::pxa255_ostimer_w));
- map(0x40d00000, 0x40d00017).rw(m_pxa_periphs, FUNC(pxa255_periphs_device::pxa255_intc_r), FUNC(pxa255_periphs_device::pxa255_intc_w));
- map(0x40e00000, 0x40e0006b).rw(m_pxa_periphs, FUNC(pxa255_periphs_device::pxa255_gpio_r), FUNC(pxa255_periphs_device::pxa255_gpio_w));
- map(0x44000000, 0x4400021f).rw(m_pxa_periphs, FUNC(pxa255_periphs_device::pxa255_lcd_r), FUNC(pxa255_periphs_device::pxa255_lcd_w));
+ map(0x40000000, 0x400002ff).rw(m_pxa_periphs, FUNC(pxa255_periphs_device::dma_r), FUNC(pxa255_periphs_device::dma_w));
+ map(0x40400000, 0x40400083).rw(m_pxa_periphs, FUNC(pxa255_periphs_device::i2s_r), FUNC(pxa255_periphs_device::i2s_w));
+ map(0x40a00000, 0x40a0001f).rw(m_pxa_periphs, FUNC(pxa255_periphs_device::ostimer_r), FUNC(pxa255_periphs_device::ostimer_w));
+ map(0x40d00000, 0x40d00017).rw(m_pxa_periphs, FUNC(pxa255_periphs_device::intc_r), FUNC(pxa255_periphs_device::intc_w));
+ map(0x40e00000, 0x40e0006b).rw(m_pxa_periphs, FUNC(pxa255_periphs_device::gpio_r), FUNC(pxa255_periphs_device::gpio_w));
+ map(0x44000000, 0x4400021f).rw(m_pxa_periphs, FUNC(pxa255_periphs_device::lcd_r), FUNC(pxa255_periphs_device::lcd_w));
map(0xa0000000, 0xa07fffff).ram().share("ram");
}
@@ -281,9 +271,8 @@ void _39in1_state::_39in1(machine_config &config)
EEPROM_93C66_16BIT(config, "eeprom");
PXA255_PERIPHERALS(config, m_pxa_periphs, 200000000, m_maincpu);
- m_pxa_periphs->gpio0_set_cb().set(FUNC(_39in1_state::eeprom_set_w));
- m_pxa_periphs->gpio0_clear_cb().set(FUNC(_39in1_state::eeprom_clear_w));
- m_pxa_periphs->gpio0_in_cb().set(FUNC(_39in1_state::eeprom_r));
+ m_pxa_periphs->gpio0_write().set(FUNC(_39in1_state::eeprom_w));
+ m_pxa_periphs->gpio0_read().set(FUNC(_39in1_state::eeprom_r));
}
void _39in1_state::_60in1(machine_config &config)