diff --git a/src/emu/inptport.h b/src/emu/inptport.h index 0bbf64e4ee7..c024cc05715 100644 --- a/src/emu/inptport.h +++ b/src/emu/inptport.h @@ -643,9 +643,9 @@ public: INT32 delta; /* delta to apply each frame a digital inc/dec key is pressed */ INT32 centerdelta; /* delta to apply each frame no digital inputs are pressed */ UINT8 crossaxis; /* crosshair axis */ - float crossscale; /* crosshair scale */ - float crossoffset; /* crosshair offset */ - float crossaltaxis; /* crosshair alternate axis value */ + double crossscale; /* crosshair scale */ + double crossoffset; /* crosshair offset */ + double crossaltaxis; /* crosshair alternate axis value */ input_field_crossmap_delegate crossmapper; /* crosshair mapping function */ const char * crossmapper_device; /* parameter for write callback routine */ UINT16 full_turn_count;/* number of optical counts for 1 full turn of the original control */ diff --git a/src/emu/machine/eeprom.c b/src/emu/machine/eeprom.c index b352d94fc21..f87c15e9251 100644 --- a/src/emu/machine/eeprom.c +++ b/src/emu/machine/eeprom.c @@ -313,12 +313,7 @@ void eeprom_device::nvram_write(emu_file &file) // READ/WRITE HANDLERS //************************************************************************** -WRITE_LINE_DEVICE_HANDLER( eeprom_write_bit ) -{ - downcast(device)->write_bit(state); -} - -void eeprom_device::write_bit(int state) +WRITE_LINE_MEMBER( eeprom_device::write_bit ) { LOG(("write bit %d\n",state)); m_latch = state; @@ -330,7 +325,7 @@ READ_LINE_DEVICE_HANDLER( eeprom_read_bit ) return downcast(device)->read_bit(); } -int eeprom_device::read_bit() +READ_LINE_MEMBER( eeprom_device::read_bit ) { int res; @@ -355,12 +350,7 @@ int eeprom_device::read_bit() -WRITE_LINE_DEVICE_HANDLER( eeprom_set_cs_line ) -{ - downcast(device)->set_cs_line(state); -} - -void eeprom_device::set_cs_line(int state) +WRITE_LINE_MEMBER( eeprom_device::set_cs_line ) { LOG(("set reset line %d\n",state)); m_reset_line = state; @@ -378,12 +368,7 @@ void eeprom_device::set_cs_line(int state) -WRITE_LINE_DEVICE_HANDLER( eeprom_set_clock_line ) -{ - downcast(device)->set_clock_line(state); -} - -void eeprom_device::set_clock_line(int state) +WRITE_LINE_MEMBER( eeprom_device::set_clock_line ) { LOG(("set clock line %d\n",state)); if (state == PULSE_LINE || (m_clock_line == CLEAR_LINE && state != CLEAR_LINE)) diff --git a/src/emu/machine/eeprom.h b/src/emu/machine/eeprom.h index 3a6cccfa517..31c44d15ec1 100644 --- a/src/emu/machine/eeprom.h +++ b/src/emu/machine/eeprom.h @@ -79,10 +79,10 @@ public: static void static_set_default_value(device_t &device, UINT16 value); // I/O operations - void write_bit(int state); - int read_bit(); - void set_cs_line(int state); - void set_clock_line(int state); + DECLARE_WRITE_LINE_MEMBER( write_bit ); + DECLARE_READ_LINE_MEMBER( read_bit ); + DECLARE_WRITE_LINE_MEMBER( set_cs_line ); + DECLARE_WRITE_LINE_MEMBER( set_clock_line ); protected: // device-level overrides @@ -139,14 +139,4 @@ extern const eeprom_interface eeprom_interface_93C46_8bit; extern const eeprom_interface eeprom_interface_93C66B; - -//************************************************************************** -// READ/WRITE HANDLERS -//************************************************************************** - -WRITE_LINE_DEVICE_HANDLER( eeprom_write_bit ); -READ_LINE_DEVICE_HANDLER( eeprom_read_bit ); -WRITE_LINE_DEVICE_HANDLER( eeprom_set_cs_line ); -WRITE_LINE_DEVICE_HANDLER( eeprom_set_clock_line ); - #endif diff --git a/src/mame/drivers/20pacgal.c b/src/mame/drivers/20pacgal.c index e460df69288..4f43242cb92 100644 --- a/src/mame/drivers/20pacgal.c +++ b/src/mame/drivers/20pacgal.c @@ -286,12 +286,12 @@ static INPUT_PORTS_START( 20pacgal ) PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) PORT_START( "EEPROMIN" ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) /* bit 7 is EEPROM data */ + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) /* bit 7 is EEPROM data */ PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) /* bit 5 is cs (active low) */ - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) /* bit 6 is clock (active high) */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) /* bit 7 is data */ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) /* bit 5 is cs (active low) */ + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) /* bit 6 is clock (active high) */ + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) /* bit 7 is data */ INPUT_PORTS_END diff --git a/src/mame/drivers/39in1.c b/src/mame/drivers/39in1.c index 4da0d85272a..ccc7c4f53ea 100644 --- a/src/mame/drivers/39in1.c +++ b/src/mame/drivers/39in1.c @@ -809,7 +809,7 @@ static READ32_HANDLER( pxa255_gpio_r ) { case PXA255_GPLR0: verboselog( space->machine(), 3, "pxa255_gpio_r: GPIO Pin-Level Register 0: %08x & %08x\n", gpio_regs->gplr0 | (1 << 1), mem_mask ); - return gpio_regs->gplr0 | (1 << 1) | (eeprom_read_bit(state->m_eeprom) << 5); // Must be on. Probably a DIP switch. + return gpio_regs->gplr0 | (1 << 1) | (state->m_eeprom->read_bit() << 5); // Must be on. Probably a DIP switch. case PXA255_GPLR1: verboselog( space->machine(), 3, "pxa255_gpio_r: *Not Yet Implemented* GPIO Pin-Level Register 1: %08x & %08x\n", gpio_regs->gplr1, mem_mask ); return 0xff9fffff; @@ -931,15 +931,15 @@ static WRITE32_HANDLER( pxa255_gpio_w ) gpio_regs->gpsr0 |= data & gpio_regs->gpdr0; if(data & 0x00000004) { - eeprom_set_cs_line(state->m_eeprom, CLEAR_LINE); + state->m_eeprom->set_cs_line(CLEAR_LINE); } if(data & 0x00000008) { - eeprom_set_clock_line(state->m_eeprom, ASSERT_LINE); + state->m_eeprom->set_clock_line(ASSERT_LINE); } if(data & 0x00000010) { - eeprom_write_bit(state->m_eeprom, 1); + state->m_eeprom->write_bit(1); } break; case PXA255_GPSR1: @@ -955,15 +955,15 @@ static WRITE32_HANDLER( pxa255_gpio_w ) gpio_regs->gpsr0 &= ~(data & gpio_regs->gpdr0); if(data & 0x00000004) { - eeprom_set_cs_line(state->m_eeprom, ASSERT_LINE); + state->m_eeprom->set_cs_line(ASSERT_LINE); } if(data & 0x00000008) { - eeprom_set_clock_line(state->m_eeprom, CLEAR_LINE); + state->m_eeprom->set_clock_line(CLEAR_LINE); } if(data & 0x00000010) { - eeprom_write_bit(state->m_eeprom, 0); + state->m_eeprom->write_bit(0); } break; case PXA255_GPCR1: diff --git a/src/mame/drivers/albazg.c b/src/mame/drivers/albazg.c index 62310d051e2..a7cf2714317 100644 --- a/src/mame/drivers/albazg.c +++ b/src/mame/drivers/albazg.c @@ -260,7 +260,7 @@ static INPUT_PORTS_START( yumefuda ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Coin Out") PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Pay Out") PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE3 ) PORT_NAME("Init SW") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("IN0") @@ -314,9 +314,9 @@ static INPUT_PORTS_START( yumefuda ) PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) /* Unused, on the PCB there's just one bank */ PORT_START("DSW1") diff --git a/src/mame/drivers/asterix.c b/src/mame/drivers/asterix.c index c0e607ea998..6ec1460ca87 100644 --- a/src/mame/drivers/asterix.c +++ b/src/mame/drivers/asterix.c @@ -218,15 +218,15 @@ static INPUT_PORTS_START( asterix ) PORT_START("IN1") KONAMI16_LSB(2, IPT_UNKNOWN, IPT_START2) - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED ) // EEPROM ready (always 1) PORT_SERVICE_NO_TOGGLE(0x0400, IP_ACTIVE_LOW ) PORT_BIT( 0xf800, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) INPUT_PORTS_END diff --git a/src/mame/drivers/astrocorp.c b/src/mame/drivers/astrocorp.c index b8fe5610f8f..3e44e764ea5 100644 --- a/src/mame/drivers/astrocorp.c +++ b/src/mame/drivers/astrocorp.c @@ -368,12 +368,12 @@ static INPUT_PORTS_START( showhand ) PORT_START( "EEPROMIN" ) PORT_BIT( 0xfff7, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END static INPUT_PORTS_START( showhanc ) @@ -397,12 +397,12 @@ static INPUT_PORTS_START( showhanc ) PORT_START( "EEPROMIN" ) PORT_BIT( 0xfff7, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END static INPUT_PORTS_START( skilldrp ) @@ -426,12 +426,12 @@ static INPUT_PORTS_START( skilldrp ) PORT_START( "EEPROMIN" ) PORT_BIT( 0xfff7, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END /*************************************************************************** diff --git a/src/mame/drivers/ataxx.c b/src/mame/drivers/ataxx.c index 2eda507727b..8f9c25b78e0 100644 --- a/src/mame/drivers/ataxx.c +++ b/src/mame/drivers/ataxx.c @@ -119,7 +119,7 @@ static INPUT_PORTS_START( ataxx ) PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("IN2") /* 0x20 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("AN0") /* 0x00 - analog X */ @@ -150,7 +150,7 @@ static INPUT_PORTS_START( wsf ) PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("IN2") /* 0x20 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -202,7 +202,7 @@ static INPUT_PORTS_START( indyheat ) PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("IN2") /* 0x20 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("AN0") /* Analog wheel 1 */ @@ -248,7 +248,7 @@ static INPUT_PORTS_START( brutforc ) PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("IN2") /* 0x20 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("P1") /* 0x0E */ diff --git a/src/mame/drivers/backfire.c b/src/mame/drivers/backfire.c index ae83a451d03..74dabc5c899 100644 --- a/src/mame/drivers/backfire.c +++ b/src/mame/drivers/backfire.c @@ -45,7 +45,7 @@ public: device_t *m_lscreen; device_t *m_rscreen; - device_t *m_eeprom; + eeprom_device *m_eeprom; /* memory */ UINT16 m_pf1_rowscroll[0x0800/2]; @@ -144,7 +144,8 @@ static READ32_DEVICE_HANDLER( backfire_eeprom_r ) { /* some kind of screen indicator? checked by backfirea set before it will boot */ int backfire_screen = device->machine().rand() & 1; - return ((eeprom_read_bit(device) << 24) | input_port_read(device->machine(), "IN0") + eeprom_device *eeprom = downcast(device); + return ((eeprom->read_bit() << 24) | input_port_read(device->machine(), "IN0") | ((input_port_read(device->machine(), "IN2") & 0xbf) << 16) | ((input_port_read(device->machine(), "IN3") & 0x40) << 16)) ^ (backfire_screen << 26) ; } @@ -154,7 +155,7 @@ static READ32_HANDLER( backfire_control2_r ) backfire_state *state = space->machine().driver_data(); // logerror("%08x:Read eprom %08x (%08x)\n", cpu_get_pc(&space->device()), offset << 1, mem_mask); - return (eeprom_read_bit(state->m_eeprom) << 24) | input_port_read(space->machine(), "IN1") | (input_port_read(space->machine(), "IN1") << 16); + return (state->m_eeprom->read_bit() << 24) | input_port_read(space->machine(), "IN1") | (input_port_read(space->machine(), "IN1") << 16); } #ifdef UNUSED_FUNCTION @@ -163,7 +164,7 @@ static READ32_HANDLER(backfire_control3_r) backfire_state *state = space->machine().driver_data(); // logerror("%08x:Read eprom %08x (%08x)\n", cpu_get_pc(&space->device()), offset << 1, mem_mask); - return (eeprom_read_bit(state->m_eeprom) << 24) | input_port_read(space->machine(), "IN2") | (input_port_read(space->machine(), "IN2") << 16); + return (state->m_eeprom->read_bit() << 24) | input_port_read(space->machine(), "IN2") | (input_port_read(space->machine(), "IN2") << 16); } #endif @@ -173,9 +174,10 @@ static WRITE32_DEVICE_HANDLER(backfire_eeprom_w) logerror("%s:write eprom %08x (%08x) %08x\n",device->machine().describe_context(),offset<<1,mem_mask,data); if (ACCESSING_BITS_0_7) { - eeprom_set_clock_line(device, BIT(data, 1) ? ASSERT_LINE : CLEAR_LINE); - eeprom_write_bit(device, BIT(data, 0)); - eeprom_set_cs_line(device, BIT(data, 2) ? CLEAR_LINE : ASSERT_LINE); + eeprom_device *eeprom = downcast(device); + eeprom->set_clock_line(BIT(data, 1) ? ASSERT_LINE : CLEAR_LINE); + eeprom->write_bit(BIT(data, 0)); + eeprom->set_cs_line(BIT(data, 2) ? CLEAR_LINE : ASSERT_LINE); } } @@ -447,7 +449,7 @@ static MACHINE_START( backfire ) state->m_deco_tilegen2 = machine.device("tilegen2"); state->m_lscreen = machine.device("lscreen"); state->m_rscreen = machine.device("rscreen"); - state->m_eeprom = machine.device("eeprom"); + state->m_eeprom = machine.device("eeprom"); } UINT16 backfire_pri_callback(UINT16 x) diff --git a/src/mame/drivers/cave.c b/src/mame/drivers/cave.c index f6eb0b76550..dcc47366fb5 100644 --- a/src/mame/drivers/cave.c +++ b/src/mame/drivers/cave.c @@ -299,13 +299,14 @@ static WRITE16_DEVICE_HANDLER( cave_eeprom_msb_w ) coin_counter_w(device->machine(), 0, data & 0x1000); // latch the bit - eeprom_write_bit(device, data & 0x0800); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x0800); // reset line asserted: reset. - eeprom_set_cs_line(device, (data & 0x0200) ? CLEAR_LINE : ASSERT_LINE); + eeprom->set_cs_line((data & 0x0200) ? CLEAR_LINE : ASSERT_LINE); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line(device, (data & 0x0400) ? ASSERT_LINE : CLEAR_LINE); + eeprom->set_clock_line((data & 0x0400) ? ASSERT_LINE : CLEAR_LINE); } } @@ -320,13 +321,14 @@ static WRITE16_DEVICE_HANDLER( hotdogst_eeprom_msb_w ) if (ACCESSING_BITS_8_15) // even address { // latch the bit - eeprom_write_bit(device, data & 0x0800); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x0800); // reset line asserted: reset. - eeprom_set_cs_line(device, (data & 0x0200) ? CLEAR_LINE : ASSERT_LINE); + eeprom->set_cs_line((data & 0x0200) ? CLEAR_LINE : ASSERT_LINE); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line(device, (data & 0x0400) ? CLEAR_LINE: ASSERT_LINE); + eeprom->set_clock_line((data & 0x0400) ? CLEAR_LINE: ASSERT_LINE); } } @@ -343,13 +345,14 @@ static WRITE16_DEVICE_HANDLER( cave_eeprom_lsb_w ) coin_counter_w(device->machine(), 0, data & 0x0001); // latch the bit - eeprom_write_bit(device, data & 0x80); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x80); // reset line asserted: reset. - eeprom_set_cs_line(device, (data & 0x20) ? CLEAR_LINE : ASSERT_LINE); + eeprom->set_cs_line((data & 0x20) ? CLEAR_LINE : ASSERT_LINE); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line(device, (data & 0x40) ? ASSERT_LINE : CLEAR_LINE); + eeprom->set_clock_line((data & 0x40) ? ASSERT_LINE : CLEAR_LINE); } } @@ -378,13 +381,14 @@ static WRITE16_DEVICE_HANDLER( metmqstr_eeprom_msb_w ) if (~data & 0x0100) { // latch the bit - eeprom_write_bit(device, data & 0x0800); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x0800); // reset line asserted: reset. - eeprom_set_cs_line(device, (data & 0x0200) ? CLEAR_LINE : ASSERT_LINE); + eeprom->set_cs_line((data & 0x0200) ? CLEAR_LINE : ASSERT_LINE); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line(device, (data & 0x0400) ? ASSERT_LINE : CLEAR_LINE); + eeprom->set_clock_line((data & 0x0400) ? ASSERT_LINE : CLEAR_LINE); } } } @@ -680,13 +684,14 @@ static WRITE16_DEVICE_HANDLER( korokoro_eeprom_msb_w ) state->m_hopper = data & 0x0100; // ??? // latch the bit - eeprom_write_bit(device, data & 0x4000); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x4000); // reset line asserted: reset. - eeprom_set_cs_line(device, (data & 0x1000) ? CLEAR_LINE : ASSERT_LINE); + eeprom->set_cs_line((data & 0x1000) ? CLEAR_LINE : ASSERT_LINE); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line(device, (data & 0x2000) ? ASSERT_LINE : CLEAR_LINE); + eeprom->set_clock_line((data & 0x2000) ? ASSERT_LINE : CLEAR_LINE); } } @@ -795,7 +800,8 @@ ADDRESS_MAP_END static READ16_DEVICE_HANDLER( pwrinst2_eeprom_r ) { - return ~8 + ((eeprom_read_bit(device) & 1) ? 8 : 0); + eeprom_device *eeprom = downcast(device); + return ~8 + ((eeprom->read_bit() & 1) ? 8 : 0); } INLINE void vctrl_w(address_space *space, offs_t offset, UINT16 data, UINT16 mem_mask, int GFX) @@ -898,13 +904,14 @@ static WRITE16_DEVICE_HANDLER( tjumpman_eeprom_lsb_w ) if (ACCESSING_BITS_0_7) // odd address { // latch the bit - eeprom_write_bit(device, data & 0x0020); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x0020); // reset line asserted: reset. - eeprom_set_cs_line(device, (data & 0x0008) ? CLEAR_LINE : ASSERT_LINE); + eeprom->set_cs_line((data & 0x0008) ? CLEAR_LINE : ASSERT_LINE); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line(device, (data & 0x0010) ? ASSERT_LINE : CLEAR_LINE); + eeprom->set_clock_line((data & 0x0010) ? ASSERT_LINE : CLEAR_LINE); } } @@ -1291,7 +1298,7 @@ static INPUT_PORTS_START( cave ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(6) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -1444,7 +1451,7 @@ static INPUT_PORTS_START( guwange ) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -1488,7 +1495,7 @@ static INPUT_PORTS_START( korokoro ) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -1500,7 +1507,7 @@ static INPUT_PORTS_START( tjumpman ) PORT_SERVICE_NO_TOGGLE( 0x01, IP_ACTIVE_LOW ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME( DEF_STR( Yes ) ) PORT_CODE(KEYCODE_Y) // suru ("do") PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME( "1 Bet" ) @@ -1525,7 +1532,7 @@ static INPUT_PORTS_START( pacslot ) PORT_SERVICE( 0x01, IP_ACTIVE_LOW ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) // credits PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME( "Pac-Man" ) PORT_CODE(KEYCODE_Y) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME( "Bet" ) diff --git a/src/mame/drivers/cbasebal.c b/src/mame/drivers/cbasebal.c index ceb4f7f141e..3b7607ccd6b 100644 --- a/src/mame/drivers/cbasebal.c +++ b/src/mame/drivers/cbasebal.c @@ -172,16 +172,16 @@ static INPUT_PORTS_START( cbasebal ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_VBLANK ) /* ? */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START( "IO_01" ) - PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) PORT_START( "IO_02" ) - PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) PORT_START( "IO_03" ) - PORT_BIT( 0x00000040, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) + PORT_BIT( 0x00000040, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) INPUT_PORTS_END diff --git a/src/mame/drivers/cps1.c b/src/mame/drivers/cps1.c index 3ef369da0bf..7681b53b6ee 100644 --- a/src/mame/drivers/cps1.c +++ b/src/mame/drivers/cps1.c @@ -2212,12 +2212,12 @@ static INPUT_PORTS_START( wof ) PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START( "EEPROMIN" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END /* Needs further checking */ @@ -2247,12 +2247,12 @@ static INPUT_PORTS_START( dino ) PORT_INCLUDE( dinopic ) PORT_START( "EEPROMIN" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END @@ -2380,12 +2380,12 @@ static INPUT_PORTS_START( punisher ) PORT_INCLUDE( punipic ) PORT_START( "EEPROMIN" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END @@ -2480,12 +2480,12 @@ static INPUT_PORTS_START( slammast ) PORT_BIT( 0xf7, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START( "EEPROMIN" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END /* Needs further checking */ @@ -2722,12 +2722,12 @@ static INPUT_PORTS_START( pang3 ) PORT_DIPUNUSED( 0x80, 0x80 ) /* doubles up as an extra service switch */ PORT_START( "EEPROMIN" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END /* Needs further checking */ @@ -2933,12 +2933,12 @@ static INPUT_PORTS_START( wofch ) PORT_INCLUDE( sfzch ) PORT_START( "EEPROMIN" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END /* diff --git a/src/mame/drivers/cps2.c b/src/mame/drivers/cps2.c index ae3646d66b8..216675048cb 100644 --- a/src/mame/drivers/cps2.c +++ b/src/mame/drivers/cps2.c @@ -922,7 +922,7 @@ static INPUT_PORTS_START( cps2_4p4b ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(4) PORT_START("IN2") /* (0x20) */ - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_SERVICE_NO_TOGGLE( 0x0002, IP_ACTIVE_LOW ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x00f8, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -936,9 +936,9 @@ static INPUT_PORTS_START( cps2_4p4b ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END /* 4 players and 3 buttons */ diff --git a/src/mame/drivers/darkhors.c b/src/mame/drivers/darkhors.c index 809078f1edc..5949f097e8c 100644 --- a/src/mame/drivers/darkhors.c +++ b/src/mame/drivers/darkhors.c @@ -249,13 +249,14 @@ static WRITE32_DEVICE_HANDLER( darkhors_eeprom_w ) if ( ACCESSING_BITS_24_31 ) { // latch the bit - eeprom_write_bit(device, data & 0x04000000); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x04000000); // reset line asserted: reset. - eeprom_set_cs_line(device, (data & 0x01000000) ? CLEAR_LINE : ASSERT_LINE ); + eeprom->set_cs_line((data & 0x01000000) ? CLEAR_LINE : ASSERT_LINE ); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line(device, (data & 0x02000000) ? ASSERT_LINE : CLEAR_LINE ); + eeprom->set_clock_line((data & 0x02000000) ? ASSERT_LINE : CLEAR_LINE ); } } @@ -421,7 +422,7 @@ static INPUT_PORTS_START( darkhors ) PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F1) // test PORT_BIT( 0x00200000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // door 1 PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // door 2 - PORT_BIT( 0x00800000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x00800000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_START1 ) // start PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Payout") PORT_CODE(KEYCODE_LCONTROL) // payout PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Cancel") PORT_CODE(KEYCODE_LALT) // cancel diff --git a/src/mame/drivers/dcheese.c b/src/mame/drivers/dcheese.c index 7e507575c44..436cb1399fe 100644 --- a/src/mame/drivers/dcheese.c +++ b/src/mame/drivers/dcheese.c @@ -261,7 +261,7 @@ static INPUT_PORTS_START( dcheese ) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) /* says tilt */ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_TILT ) /* says test */ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* bump left */ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON4 ) /* bump right */ @@ -299,9 +299,9 @@ static INPUT_PORTS_START( dcheese ) PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END @@ -313,7 +313,7 @@ static INPUT_PORTS_START( lottof2 ) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_TILT ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x1f00, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* button */ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* ticket */ @@ -347,9 +347,9 @@ static INPUT_PORTS_START( lottof2 ) PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END @@ -361,7 +361,7 @@ static INPUT_PORTS_START( fredmem ) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_TILT ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x1f00, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_CODE(KEYCODE_5_PAD) PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -397,9 +397,9 @@ static INPUT_PORTS_START( fredmem ) PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END diff --git a/src/mame/drivers/deco156.c b/src/mame/drivers/deco156.c index 736c73291c1..fee4c5ea120 100644 --- a/src/mame/drivers/deco156.c +++ b/src/mame/drivers/deco156.c @@ -186,7 +186,7 @@ static INPUT_PORTS_START( hvysmsh ) PORT_BIT( 0x00200000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x00800000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x01000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -196,9 +196,9 @@ static INPUT_PORTS_START( hvysmsh ) PORT_BIT( 0x80000000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x00000010, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x00000020, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x00000010, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x00000020, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END static INPUT_PORTS_START( wcvol95 ) @@ -228,7 +228,7 @@ static INPUT_PORTS_START( wcvol95 ) PORT_BIT( 0x00200000, IP_ACTIVE_LOW, IPT_UNUSED ) /* 'soundmask' */ PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x00800000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x01000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -238,9 +238,9 @@ static INPUT_PORTS_START( wcvol95 ) PORT_BIT( 0x80000000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x00000002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x00000002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END diff --git a/src/mame/drivers/deco32.c b/src/mame/drivers/deco32.c index ae70453986a..0dadb6cca7f 100644 --- a/src/mame/drivers/deco32.c +++ b/src/mame/drivers/deco32.c @@ -398,7 +398,7 @@ static READ32_HANDLER( fghthist_control_r ) switch (offset) { case 0: return 0xffff0000 | input_port_read(space->machine(), "IN0"); case 1: return 0xffff0000 | input_port_read(space->machine(), "IN1"); //check top bits?? - case 2: return 0xfffffffe | eeprom_read_bit(space->machine().device("eeprom")); + case 2: return 0xfffffffe | space->machine().device("eeprom")->read_bit(); } return 0xffffffff; @@ -407,10 +407,10 @@ static READ32_HANDLER( fghthist_control_r ) static WRITE32_HANDLER( fghthist_eeprom_w ) { if (ACCESSING_BITS_0_7) { - eeprom_device *device = space->machine().device("eeprom"); - eeprom_set_clock_line(device, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE); - eeprom_write_bit(device, data & 0x10); - eeprom_set_cs_line(device, (data & 0x40) ? CLEAR_LINE : ASSERT_LINE); + eeprom_device *eeprom = space->machine().device("eeprom"); + eeprom->set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE); + eeprom->write_bit(data & 0x10); + eeprom->set_cs_line((data & 0x40) ? CLEAR_LINE : ASSERT_LINE); deco32_pri_w(space,0,data&0x1,0xffffffff); /* Bit 0 - layer priority toggle */ } @@ -480,15 +480,17 @@ static WRITE32_HANDLER( dragngun_lightgun_w ) static READ32_DEVICE_HANDLER( dragngun_eeprom_r ) { - return 0xfffffffe | eeprom_read_bit(device); + eeprom_device *eeprom = downcast(device); + return 0xfffffffe | eeprom->read_bit(); } static WRITE32_DEVICE_HANDLER( dragngun_eeprom_w ) { if (ACCESSING_BITS_0_7) { - eeprom_set_clock_line(device, (data & 0x2) ? ASSERT_LINE : CLEAR_LINE); - eeprom_write_bit(device, data & 0x1); - eeprom_set_cs_line(device, (data & 0x4) ? CLEAR_LINE : ASSERT_LINE); + eeprom_device *eeprom = downcast(device); + eeprom->set_clock_line((data & 0x2) ? ASSERT_LINE : CLEAR_LINE); + eeprom->write_bit(data & 0x1); + eeprom->set_cs_line((data & 0x4) ? CLEAR_LINE : ASSERT_LINE); return; } logerror("%s:Write control 1 %08x %08x\n",device->machine().describe_context(),offset,data); @@ -662,7 +664,7 @@ static READ32_HANDLER( nslasher_prot_r ) switch (offset<<1) { case 0x280: return input_port_read(space->machine(), "IN0") << 16| 0xffff; /* IN0 */ case 0x4c4: return input_port_read(space->machine(), "IN1") << 16| 0xffff; /* IN1 */ - case 0x35a: return (eeprom_read_bit(space->machine().device("eeprom"))<< 16) | 0xffff; // Debug switch in low word?? + case 0x35a: return (space->machine().device("eeprom")->read_bit()<< 16) | 0xffff; // Debug switch in low word?? } //logerror("%08x: Read unmapped prot %08x (%08x)\n",cpu_get_pc(&space->device()),offset<<1,mem_mask); @@ -674,10 +676,10 @@ static WRITE32_HANDLER( nslasher_eeprom_w ) { if (ACCESSING_BITS_0_7) { - eeprom_device *device = space->machine().device("eeprom"); - eeprom_set_clock_line(device, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE); - eeprom_write_bit(device, data & 0x10); - eeprom_set_cs_line(device, (data & 0x40) ? CLEAR_LINE : ASSERT_LINE); + eeprom_device *eeprom = space->machine().device("eeprom"); + eeprom->set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE); + eeprom->write_bit(data & 0x10); + eeprom->set_cs_line((data & 0x40) ? CLEAR_LINE : ASSERT_LINE); deco32_pri_w(space,0,data&0x3,0xffffffff); /* Bit 0 - layer priority toggle, Bit 1 - BG2/3 Joint mode (8bpp) */ } diff --git a/src/mame/drivers/deco_mlc.c b/src/mame/drivers/deco_mlc.c index fa4bea11776..136302021a2 100644 --- a/src/mame/drivers/deco_mlc.c +++ b/src/mame/drivers/deco_mlc.c @@ -132,9 +132,10 @@ static WRITE32_DEVICE_HANDLER( avengrs_eprom_w ) if (ACCESSING_BITS_8_15) { UINT8 ebyte=(data>>8)&0xff; // if (ebyte&0x80) { - eeprom_set_clock_line(device, (ebyte & 0x2) ? ASSERT_LINE : CLEAR_LINE); - eeprom_write_bit(device, ebyte & 0x1); - eeprom_set_cs_line(device, (ebyte & 0x4) ? CLEAR_LINE : ASSERT_LINE); + eeprom_device *eeprom = downcast(device); + eeprom->set_clock_line((ebyte & 0x2) ? ASSERT_LINE : CLEAR_LINE); + eeprom->write_bit(ebyte & 0x1); + eeprom->set_cs_line((ebyte & 0x4) ? CLEAR_LINE : ASSERT_LINE); // } } else if (ACCESSING_BITS_0_7) { @@ -308,7 +309,7 @@ static INPUT_PORTS_START( mlc ) PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00200000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00800000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x00800000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) diff --git a/src/mame/drivers/dkong.c b/src/mame/drivers/dkong.c index da4044065b3..5339afc87e5 100644 --- a/src/mame/drivers/dkong.c +++ b/src/mame/drivers/dkong.c @@ -1616,7 +1616,8 @@ static const eeprom_interface braze_eeprom_intf = static READ8_DEVICE_HANDLER( braze_eeprom_r ) { - return eeprom_read_bit(device); + eeprom_device *eeprom = downcast(device); + return eeprom->read_bit(); } static WRITE8_HANDLER( braze_a15_w ) @@ -1627,9 +1628,10 @@ static WRITE8_HANDLER( braze_a15_w ) static WRITE8_DEVICE_HANDLER( braze_eeprom_w ) { - eeprom_write_bit(device, data & 0x01); - eeprom_set_cs_line(device, data & 0x04 ? CLEAR_LINE : ASSERT_LINE); - eeprom_set_clock_line(device, data & 0x02 ? ASSERT_LINE : CLEAR_LINE); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x01); + eeprom->set_cs_line(data & 0x04 ? CLEAR_LINE : ASSERT_LINE); + eeprom->set_clock_line(data & 0x02 ? ASSERT_LINE : CLEAR_LINE); } static void braze_decrypt_rom(running_machine &machine, UINT8 *dest) diff --git a/src/mame/drivers/eolith.c b/src/mame/drivers/eolith.c index cad17db2acd..4f188aaadc8 100644 --- a/src/mame/drivers/eolith.c +++ b/src/mame/drivers/eolith.c @@ -139,7 +139,7 @@ static INPUT_PORTS_START( common ) PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x00000008, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x00000008, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(eolith_speedup_getvblank, NULL) @@ -167,9 +167,9 @@ static INPUT_PORTS_START( common ) PORT_BIT( 0xffffffff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x00000004, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x00000008, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x00000004, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x00000008, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) INPUT_PORTS_END static INPUT_PORTS_START( ironfort ) @@ -177,7 +177,7 @@ static INPUT_PORTS_START( ironfort ) PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x00000008, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x00000008, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(eolith_speedup_getvblank, NULL) @@ -226,9 +226,9 @@ static INPUT_PORTS_START( ironfort ) PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x00000004, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x00000008, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x00000004, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x00000008, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) INPUT_PORTS_END static INPUT_PORTS_START( ironfortj ) diff --git a/src/mame/drivers/eolith16.c b/src/mame/drivers/eolith16.c index ed6755fd69e..37d3b8a3e36 100644 --- a/src/mame/drivers/eolith16.c +++ b/src/mame/drivers/eolith16.c @@ -88,7 +88,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( eolith16 ) PORT_START("SPECIAL") - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(eolith_speedup_getvblank, NULL) PORT_BIT( 0xff6f, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -111,9 +111,9 @@ static INPUT_PORTS_START( eolith16 ) PORT_BIT( 0xffe0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x00000020, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x00000040, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) + PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x00000020, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x00000040, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) INPUT_PORTS_END static VIDEO_START( eolith16 ) diff --git a/src/mame/drivers/esd16.c b/src/mame/drivers/esd16.c index 55001b082b9..822a5ae5180 100644 --- a/src/mame/drivers/esd16.c +++ b/src/mame/drivers/esd16.c @@ -118,7 +118,7 @@ static READ16_HANDLER( esd_eeprom_r ) esd16_state *state = space->machine().driver_data(); if (ACCESSING_BITS_8_15) { - return ((eeprom_read_bit(state->m_eeprom) & 0x01) << 15); + return ((state->m_eeprom->read_bit() & 0x01) << 15); } // logerror("(0x%06x) unk EEPROM read: %04x\n", cpu_get_pc(&space->device()), mem_mask); @@ -377,9 +377,9 @@ static INPUT_PORTS_START( hedpanic ) PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) INPUT_PORTS_END @@ -414,9 +414,9 @@ static INPUT_PORTS_START( swatpolc ) PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) INPUT_PORTS_END /*************************************************************************** @@ -524,7 +524,7 @@ static MACHINE_START( esd16 ) memory_configure_bank(machine, "bank1", 0, 17, &AUDIO[0x0000], 0x4000); state->m_audio_cpu = machine.device("audiocpu"); - state->m_eeprom = machine.device("eeprom"); + state->m_eeprom = machine.device("eeprom"); state->save_item(NAME(state->m_tilemap0_color)); } diff --git a/src/mame/drivers/f-32.c b/src/mame/drivers/f-32.c index ee7a31d4406..41b5d0541c8 100644 --- a/src/mame/drivers/f-32.c +++ b/src/mame/drivers/f-32.c @@ -117,16 +117,16 @@ static INPUT_PORTS_START( mosaicf2 ) PORT_BIT( 0xff000000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START( "EEPROMIN" ) - PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) + PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) PORT_START( "EEPROMCLK" ) - PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) PORT_START( "EEPROMCS" ) - PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END static MACHINE_CONFIG_START( mosaicf2, mosaicf2_state ) diff --git a/src/mame/drivers/fortecar.c b/src/mame/drivers/fortecar.c index 91b1eecd0fe..c30767c569d 100644 --- a/src/mame/drivers/fortecar.c +++ b/src/mame/drivers/fortecar.c @@ -73,15 +73,17 @@ static SCREEN_UPDATE(fortecar) static WRITE8_DEVICE_HANDLER( ppi0_portc_w ) { - eeprom_write_bit(device, data & 0x04); - eeprom_set_cs_line(device, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); - eeprom_set_clock_line(device, (data & 0x02) ? ASSERT_LINE : CLEAR_LINE); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x04); + eeprom->set_cs_line((data & 0x01) ? CLEAR_LINE : ASSERT_LINE); + eeprom->set_clock_line((data & 0x02) ? ASSERT_LINE : CLEAR_LINE); } static READ8_DEVICE_HANDLER( ppi0_portc_r ) { // popmessage("%s",device->machine().describe_context()); - return (~(eeprom_read_bit(device)<<1) & 2); + eeprom_device *eeprom = downcast(device); + return (~(eeprom->read_bit()<<1) & 2); } static const ppi8255_interface ppi0intf = diff --git a/src/mame/drivers/fromanc2.c b/src/mame/drivers/fromanc2.c index 719f81052ad..a2c12898ae0 100644 --- a/src/mame/drivers/fromanc2.c +++ b/src/mame/drivers/fromanc2.c @@ -328,7 +328,7 @@ static INPUT_PORTS_START( fromanc2 ) PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(subcpu_int_r, NULL) // SUBCPU INT FLAG PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(sndcpu_nmi_r, NULL) // SNDCPU NMI FLAG PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(subcpu_nmi_r, NULL) // SUBCPU NMI FLAG - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( "Service Mode (1P)" ) PORT_CODE(KEYCODE_F2) // TEST (1P) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( "Service Mode (2P)" ) PORT_CODE(KEYCODE_F2) // TEST (2P) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -411,9 +411,9 @@ static INPUT_PORTS_START( fromanc2 ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END #ifdef UNREFERENCED_CODE @@ -421,9 +421,9 @@ static INPUT_PORTS_START( fromancr ) PORT_INCLUDE( fromanc2 ) PORT_MODIFY("EEPROMOUT") - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END #endif @@ -438,14 +438,14 @@ static INPUT_PORTS_START( fromanc4 ) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(sndcpu_nmi_r, NULL) // SNDCPU NMI FLAG PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_MODIFY("EEPROMOUT") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) INPUT_PORTS_END diff --git a/src/mame/drivers/gaelco2.c b/src/mame/drivers/gaelco2.c index 01427025c07..1628f2712a4 100644 --- a/src/mame/drivers/gaelco2.c +++ b/src/mame/drivers/gaelco2.c @@ -252,7 +252,7 @@ static INPUT_PORTS_START( bang ) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) /* bit 6 is EEPROM data (DOUT) */ + PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) /* bit 6 is EEPROM data (DOUT) */ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_SPECIAL ) /* bit 7 is EEPROM ready */ PORT_START("LIGHT0_X") @@ -958,7 +958,7 @@ static INPUT_PORTS_START( snowboar ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) /* bit 6 is EEPROM data (DOUT) */ + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) /* bit 6 is EEPROM data (DOUT) */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* bit 7 is EEPROM ready */ INPUT_PORTS_END diff --git a/src/mame/drivers/gaelco3d.c b/src/mame/drivers/gaelco3d.c index 0a1a7ec5640..7bcabea184c 100644 --- a/src/mame/drivers/gaelco3d.c +++ b/src/mame/drivers/gaelco3d.c @@ -296,7 +296,8 @@ static READ16_DEVICE_HANDLER( eeprom_data_r ) result |= gaelco_serial_status_r(device->machine().device("serial"), 0); } - if (eeprom_read_bit(device)) + eeprom_device *eeprom = downcast(device); + if (eeprom->read_bit()) result ^= 0x0004; if (LOG) logerror("eeprom_data_r(%02X)\n", result); @@ -324,7 +325,10 @@ static READ32_DEVICE_HANDLER( eeprom_data32_r ) static WRITE16_DEVICE_HANDLER( eeprom_data_w ) { if (ACCESSING_BITS_0_7) - eeprom_write_bit(device, data & 0x01); + { + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x01); + } else if (mem_mask != 0xffff) logerror("write mask: %08x data %08x\n", mem_mask, data); } @@ -333,14 +337,20 @@ static WRITE16_DEVICE_HANDLER( eeprom_data_w ) static WRITE16_DEVICE_HANDLER( eeprom_clock_w ) { if (ACCESSING_BITS_0_7) - eeprom_set_clock_line(device, (data & 0x01) ? ASSERT_LINE : CLEAR_LINE); + { + eeprom_device *eeprom = downcast(device); + eeprom->set_clock_line((data & 0x01) ? ASSERT_LINE : CLEAR_LINE); + } } static WRITE16_DEVICE_HANDLER( eeprom_cs_w ) { if (ACCESSING_BITS_0_7) - eeprom_set_cs_line(device, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); + { + eeprom_device *eeprom = downcast(device); + eeprom->set_cs_line((data & 0x01) ? CLEAR_LINE : ASSERT_LINE); + } } diff --git a/src/mame/drivers/galastrm.c b/src/mame/drivers/galastrm.c index a99d5bdc157..e41187cb513 100644 --- a/src/mame/drivers/galastrm.c +++ b/src/mame/drivers/galastrm.c @@ -127,10 +127,10 @@ popmessage(t); if (ACCESSING_BITS_0_7) { - device_t *device = space->machine().device("eeprom"); - eeprom_set_clock_line(device, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE); - eeprom_write_bit(device, data & 0x40); - eeprom_set_cs_line(device, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); + eeprom_device *eeprom = space->machine().device("eeprom"); + eeprom->set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE); + eeprom->write_bit(data & 0x40); + eeprom->set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE); return; } return; @@ -204,7 +204,7 @@ static INPUT_PORTS_START( galastrm ) PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x00000200, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(frame_counter_r, NULL) PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNKNOWN ) diff --git a/src/mame/drivers/galpani2.c b/src/mame/drivers/galpani2.c index e8bb4605afa..c40564d468d 100644 --- a/src/mame/drivers/galpani2.c +++ b/src/mame/drivers/galpani2.c @@ -38,7 +38,8 @@ To Do: static READ16_DEVICE_HANDLER(galpani2_eeprom_r) { galpani2_state *state = device->machine().driver_data(); - return (state->m_eeprom_word & ~1) | (eeprom_read_bit(device) & 1); + eeprom_device *eeprom = downcast(device); + return (state->m_eeprom_word & ~1) | (eeprom->read_bit() & 1); } static WRITE16_DEVICE_HANDLER(galpani2_eeprom_w) @@ -48,13 +49,14 @@ static WRITE16_DEVICE_HANDLER(galpani2_eeprom_w) if ( ACCESSING_BITS_0_7 ) { // latch the bit - eeprom_write_bit(device, data & 0x02); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x02); // reset line asserted: reset. - eeprom_set_cs_line(device, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE ); + eeprom->set_cs_line((data & 0x08) ? CLEAR_LINE : ASSERT_LINE ); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line(device, (data & 0x04) ? ASSERT_LINE : CLEAR_LINE ); + eeprom->set_clock_line((data & 0x04) ? ASSERT_LINE : CLEAR_LINE ); } } diff --git a/src/mame/drivers/gijoe.c b/src/mame/drivers/gijoe.c index d17ab0c592d..f391c2161fc 100644 --- a/src/mame/drivers/gijoe.c +++ b/src/mame/drivers/gijoe.c @@ -210,14 +210,14 @@ static INPUT_PORTS_START( gijoe ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START3 ) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SPECIAL ) // EEPROM ready (always 1) PORT_SERVICE_NO_TOGGLE( 0x0800, IP_ACTIVE_LOW ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) PORT_START("SYSTEM") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) diff --git a/src/mame/drivers/groundfx.c b/src/mame/drivers/groundfx.c index 6126ca24f50..816e64aff19 100644 --- a/src/mame/drivers/groundfx.c +++ b/src/mame/drivers/groundfx.c @@ -249,7 +249,7 @@ static INPUT_PORTS_START( groundfx ) PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* shift hi */ PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* brake */ PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -261,9 +261,9 @@ static INPUT_PORTS_START( groundfx ) PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x00000020, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x00000040, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) + PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x00000020, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x00000040, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) PORT_START("SYSTEM") PORT_SERVICE_NO_TOGGLE( 0x00000001, IP_ACTIVE_LOW ) diff --git a/src/mame/drivers/gticlub.c b/src/mame/drivers/gticlub.c index 8815416b46c..bb599ea0808 100644 --- a/src/mame/drivers/gticlub.c +++ b/src/mame/drivers/gticlub.c @@ -322,7 +322,7 @@ static READ8_HANDLER( sysreg_r ) { static const char *const portnames[] = { "IN0", "IN1", "IN2", "IN3" }; device_t *adc1038 = space->machine().device("adc1038"); - device_t *eeprom = space->machine().device("eeprom"); + eeprom_device *eeprom = space->machine().device("eeprom"); switch (offset) { @@ -342,7 +342,7 @@ static READ8_HANDLER( sysreg_r ) // a = ADC readout // e = EEPROM data out - UINT32 eeprom_bit = (eeprom_read_bit(eeprom) << 1); + UINT32 eeprom_bit = (eeprom->read_bit() << 1); UINT32 adc_bit = (adc1038_do_read(adc1038) << 2); return (eeprom_bit | adc_bit); } @@ -357,7 +357,7 @@ static READ8_HANDLER( sysreg_r ) static WRITE8_HANDLER( sysreg_w ) { device_t *adc1038 = space->machine().device("adc1038"); - device_t *eeprom = space->machine().device("eeprom"); + eeprom_device *eeprom = space->machine().device("eeprom"); switch (offset) { @@ -367,9 +367,9 @@ static WRITE8_HANDLER( sysreg_w ) break; case 3: - eeprom_write_bit(eeprom, (data & 0x01) ? 1 : 0); - eeprom_set_clock_line(eeprom, (data & 0x02) ? ASSERT_LINE : CLEAR_LINE); - eeprom_set_cs_line(eeprom, (data & 0x04) ? CLEAR_LINE : ASSERT_LINE); + eeprom->write_bit((data & 0x01) ? 1 : 0); + eeprom->set_clock_line((data & 0x02) ? ASSERT_LINE : CLEAR_LINE); + eeprom->set_cs_line((data & 0x04) ? CLEAR_LINE : ASSERT_LINE); break; case 4: diff --git a/src/mame/drivers/gunbustr.c b/src/mame/drivers/gunbustr.c index 2c48a49d9e6..06ae0f2b98d 100644 --- a/src/mame/drivers/gunbustr.c +++ b/src/mame/drivers/gunbustr.c @@ -109,10 +109,10 @@ popmessage(t); if (ACCESSING_BITS_0_7) { - device_t *device = space->machine().device("eeprom"); - eeprom_set_clock_line(device, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE); - eeprom_write_bit(device, data & 0x40); - eeprom_set_cs_line(device, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); + eeprom_device *eeprom = space->machine().device("eeprom"); + eeprom->set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE); + eeprom->write_bit(data & 0x40); + eeprom->set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE); return; } return; @@ -220,7 +220,7 @@ static INPUT_PORTS_START( gunbustr ) PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) diff --git a/src/mame/drivers/hornet.c b/src/mame/drivers/hornet.c index eda64285063..b98aea5555c 100644 --- a/src/mame/drivers/hornet.c +++ b/src/mame/drivers/hornet.c @@ -440,7 +440,7 @@ static READ8_HANDLER( sysreg_r ) UINT8 r = 0; static const char *const portnames[] = { "IN0", "IN1", "IN2" }; device_t *adc12138 = space->machine().device("adc12138"); - device_t *eeprom = space->machine().device("eeprom"); + eeprom_device *eeprom = space->machine().device("eeprom"); switch (offset) { @@ -460,7 +460,7 @@ static READ8_HANDLER( sysreg_r ) 0x02 = ADDOR (ADC DOR) 0x01 = ADDO (ADC DO) */ - r = 0xf0 | (eeprom_read_bit(eeprom) << 3); + r = 0xf0 | (eeprom->read_bit() << 3); r |= adc1213x_do_r(adc12138, 0) | (adc1213x_eoc_r(adc12138, 0) << 2); break; @@ -783,9 +783,9 @@ static INPUT_PORTS_START( hornet ) PORT_DIPSETTING( 0x00, "15KHz" ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END static INPUT_PORTS_START( sscope ) @@ -835,9 +835,9 @@ static INPUT_PORTS_START( sscope ) PORT_DIPSETTING( 0x00, "15KHz" ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END static const sharc_config sharc_cfg = diff --git a/src/mame/drivers/inufuku.c b/src/mame/drivers/inufuku.c index fce69b9a9fb..d43c2bf9534 100644 --- a/src/mame/drivers/inufuku.c +++ b/src/mame/drivers/inufuku.c @@ -233,13 +233,13 @@ static INPUT_PORTS_START( inufuku ) PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(soundflag_r, NULL) // pending sound command PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) PORT_START("P3") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(3) diff --git a/src/mame/drivers/jackpool.c b/src/mame/drivers/jackpool.c index d279af6bf71..633110ee45c 100644 --- a/src/mame/drivers/jackpool.c +++ b/src/mame/drivers/jackpool.c @@ -109,8 +109,8 @@ static READ16_HANDLER( jackpool_io_r ) case 0x1c: return input_port_read(space->machine(),"BET"); case 0x1e: return 0xff; //ticket motor case 0x20: return 0xff; //hopper motor - case 0x2c: return eeprom_read_bit(space->machine().device("eeprom")); - case 0x2e: return eeprom_read_bit(space->machine().device("eeprom")); + case 0x2c: return space->machine().device("eeprom")->read_bit(); + case 0x2e: return space->machine().device("eeprom")->read_bit(); // default: printf("R %02x\n",offset*2); break; } @@ -138,11 +138,11 @@ static WRITE16_HANDLER( jackpool_io_w ) case 0x4a: /* ---- ---x Ticket motor */break; case 0x4c: /* ---- ---x Hopper motor */break; case 0x4e: state->m_map_vreg = data & 1; break; - case 0x50: eeprom_set_cs_line(space->machine().device("eeprom"), (data & 1) ? CLEAR_LINE : ASSERT_LINE ); break; - case 0x52: eeprom_set_clock_line(space->machine().device("eeprom"), (data & 1) ? ASSERT_LINE : CLEAR_LINE ); break; - case 0x54: eeprom_write_bit(space->machine().device("eeprom"), data & 1); break; -// case 0x5a: eeprom_set_cs_line(space->machine().device("eeprom"), (data & 1) ? CLEAR_LINE : ASSERT_LINE ); break; -// case 0x5c: eeprom_set_cs_line(space->machine().device("eeprom"), (data & 1) ? CLEAR_LINE : ASSERT_LINE ); break; + case 0x50: space->machine().device("eeprom")->set_cs_line((data & 1) ? CLEAR_LINE : ASSERT_LINE ); break; + case 0x52: space->machine().device("eeprom")->set_clock_line((data & 1) ? ASSERT_LINE : CLEAR_LINE ); break; + case 0x54: space->machine().device("eeprom")->write_bit(data & 1); break; +// case 0x5a: space->machine().device("eeprom")->set_cs_line((data & 1) ? CLEAR_LINE : ASSERT_LINE ); break; +// case 0x5c: space->machine().device("eeprom")->set_cs_line((data & 1) ? CLEAR_LINE : ASSERT_LINE ); break; case 0x60: break; // default: printf("[%02x] <- %02x W\n",offset*2,data); break; } @@ -151,17 +151,17 @@ static WRITE16_HANDLER( jackpool_io_w ) if(offset*2 == 0x54) { printf("Write bit %02x\n",data); - eeprom_write_bit(space->machine().device("eeprom"), data & 1); + space->machine().device("eeprom")->write_bit(data & 1); } if(offset*2 == 0x52) { printf("Clock bit %02x\n",data); - eeprom_set_clock_line(space->machine().device("eeprom"), (data & 1) ? ASSERT_LINE : CLEAR_LINE ); + space->machine().device("eeprom")->set_clock_line((data & 1) ? ASSERT_LINE : CLEAR_LINE ); } if(offset*2 == 0x50) { printf("chip select bit %02x\n",data); - eeprom_set_cs_line(space->machine().device("eeprom"), (data & 1) ? CLEAR_LINE : ASSERT_LINE ); + space->machine().device("eeprom")->set_cs_line((data & 1) ? CLEAR_LINE : ASSERT_LINE ); } #endif } diff --git a/src/mame/drivers/jaguar.c b/src/mame/drivers/jaguar.c index d1c24ca7800..a2916da749c 100644 --- a/src/mame/drivers/jaguar.c +++ b/src/mame/drivers/jaguar.c @@ -584,29 +584,29 @@ static NVRAM_HANDLER( jaguar ) */ static WRITE32_HANDLER( jaguar_eeprom_w ) { - device_t *eeprom = space->machine().device("eeprom"); + eeprom_device *eeprom = space->machine().device("eeprom"); eeprom_bit_count++; if (eeprom_bit_count != 9) /* kill extra bit at end of address */ { - eeprom_write_bit(eeprom,data >> 31); - eeprom_set_clock_line(eeprom,PULSE_LINE); + eeprom->write_bit(data >> 31); + eeprom->set_clock_line(PULSE_LINE); } } static READ32_HANDLER( jaguar_eeprom_clk ) { - device_t *eeprom = space->machine().device("eeprom"); - eeprom_set_clock_line(eeprom,PULSE_LINE); /* get next bit when reading */ + eeprom_device *eeprom = space->machine().device("eeprom"); + eeprom->set_clock_line(PULSE_LINE); /* get next bit when reading */ return 0; } static READ32_HANDLER( jaguar_eeprom_cs ) { - device_t *eeprom = space->machine().device("eeprom"); - eeprom_set_cs_line(eeprom,ASSERT_LINE); /* must do at end of an operation */ - eeprom_set_cs_line(eeprom,CLEAR_LINE); /* enable chip for next operation */ - eeprom_write_bit(eeprom,1); /* write a start bit */ - eeprom_set_clock_line(eeprom,PULSE_LINE); + eeprom_device *eeprom = space->machine().device("eeprom"); + eeprom->set_cs_line(ASSERT_LINE); /* must do at end of an operation */ + eeprom->set_cs_line(CLEAR_LINE); /* enable chip for next operation */ + eeprom->write_bit(1); /* write a start bit */ + eeprom->set_clock_line(PULSE_LINE); eeprom_bit_count = 0; return 0; } @@ -769,7 +769,7 @@ static READ32_HANDLER( joystick_r ) } } - joystick_result |= eeprom_read_bit(space->machine().device("eeprom")); + joystick_result |= space->machine().device("eeprom")->read_bit(); joybuts_result |= (input_port_read(space->machine(), "CONFIG") & 0x10); return (joystick_result << 16) | joybuts_result; diff --git a/src/mame/drivers/kaneko16.c b/src/mame/drivers/kaneko16.c index da0e39d2e67..bd148becdd9 100644 --- a/src/mame/drivers/kaneko16.c +++ b/src/mame/drivers/kaneko16.c @@ -957,8 +957,8 @@ static INPUT_PORTS_START( bakubrkr ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) INPUT_PORTS_END @@ -1532,8 +1532,8 @@ static INPUT_PORTS_START( mgcrystl ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) INPUT_PORTS_END @@ -1608,8 +1608,8 @@ static INPUT_PORTS_START( shogwarr ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) INPUT_PORTS_END @@ -1684,8 +1684,8 @@ Difficulty Lives Bonus Players Play Level ******************************************************/ PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) INPUT_PORTS_END @@ -1778,16 +1778,16 @@ static WRITE8_DEVICE_HANDLER( kaneko16_eeprom_reset_w ) { // FIXME: the device line cannot be directly put in the interface due to inverse value! // we might want to define a "reversed" set_cs_line handler - device_t *eeprom = device->machine().device("eeprom"); + eeprom_device *eeprom = device->machine().device("eeprom"); // reset line asserted: reset. - eeprom_set_cs_line(eeprom, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE ); + eeprom->set_cs_line((data & 0x01) ? CLEAR_LINE : ASSERT_LINE ); } static const ay8910_interface ay8910_intf_eeprom = { AY8910_LEGACY_OUTPUT, AY8910_DEFAULT_LOADS, - DEVCB_DEVICE_LINE("eeprom", eeprom_read_bit), /* inputs A: 0,EEPROM bit read */ + DEVCB_DEVICE_LINE_MEMBER("eeprom", eeprom_device, read_bit), /* inputs A: 0,EEPROM bit read */ DEVCB_NULL, /* inputs B */ DEVCB_NULL, /* outputs A */ DEVCB_HANDLER(kaneko16_eeprom_reset_w) /* outputs B: 0,EEPROM reset */ diff --git a/src/mame/drivers/kickgoal.c b/src/mame/drivers/kickgoal.c index 9ba40e955b8..f71cbae7f3a 100644 --- a/src/mame/drivers/kickgoal.c +++ b/src/mame/drivers/kickgoal.c @@ -451,7 +451,7 @@ static READ16_HANDLER( kickgoal_eeprom_r ) kickgoal_state *state = space->machine().driver_data(); if (ACCESSING_BITS_0_7) { - return eeprom_read_bit(state->m_eeprom); + return state->m_eeprom->read_bit(); } return 0; } @@ -465,13 +465,13 @@ static WRITE16_HANDLER( kickgoal_eeprom_w ) switch (offset) { case 0: - eeprom_set_cs_line(state->m_eeprom, (data & 0x0001) ? CLEAR_LINE : ASSERT_LINE); + state->m_eeprom->set_cs_line((data & 0x0001) ? CLEAR_LINE : ASSERT_LINE); break; case 1: - eeprom_set_clock_line(state->m_eeprom, (data & 0x0001) ? ASSERT_LINE : CLEAR_LINE); + state->m_eeprom->set_clock_line((data & 0x0001) ? ASSERT_LINE : CLEAR_LINE); break; case 2: - eeprom_write_bit(state->m_eeprom, data & 0x0001); + state->m_eeprom->write_bit(data & 0x0001); break; } } diff --git a/src/mame/drivers/konamigq.c b/src/mame/drivers/konamigq.c index 2b408dfd8bf..662cedbc8c6 100644 --- a/src/mame/drivers/konamigq.c +++ b/src/mame/drivers/konamigq.c @@ -483,12 +483,12 @@ static INPUT_PORTS_START( konamigq ) PORT_DIPSETTING( 0x00, "Independent" ) PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00010000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x00010000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) INPUT_PORTS_END ROM_START( cryptklr ) diff --git a/src/mame/drivers/konamigv.c b/src/mame/drivers/konamigv.c index 1c607b94d52..bee46c6ed01 100644 --- a/src/mame/drivers/konamigv.c +++ b/src/mame/drivers/konamigv.c @@ -150,9 +150,10 @@ public: static WRITE32_DEVICE_HANDLER( eeprom_w ) { - eeprom_write_bit(device, (data&0x01) ? 1 : 0); - eeprom_set_clock_line(device, (data&0x04) ? ASSERT_LINE : CLEAR_LINE); - eeprom_set_cs_line(device, (data&0x02) ? CLEAR_LINE : ASSERT_LINE); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit((data&0x01) ? 1 : 0); + eeprom->set_clock_line((data&0x04) ? ASSERT_LINE : CLEAR_LINE); + eeprom->set_cs_line((data&0x02) ? CLEAR_LINE : ASSERT_LINE); } static WRITE32_HANDLER( mb89371_w ) @@ -380,7 +381,7 @@ static INPUT_PORTS_START( konamigv ) PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_SERVICE_NO_TOGGLE( 0x00001000, IP_ACTIVE_LOW ) - PORT_BIT( 0x00002000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE( "eeprom", eeprom_read_bit ) + PORT_BIT( 0x00002000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER( "eeprom", eeprom_device, read_bit ) PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNKNOWN ) diff --git a/src/mame/drivers/konamigx.c b/src/mame/drivers/konamigx.c index e5a632d796f..413528ea9c2 100644 --- a/src/mame/drivers/konamigx.c +++ b/src/mame/drivers/konamigx.c @@ -1392,7 +1392,7 @@ static INPUT_PORTS_START( common ) // excpuint stat, objdma stat, eeprom do // note: racin' force expects bit 1 of the eeprom port to toggle - PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x000000fe, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(gx_rdport1_3_r, NULL) PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_COIN2 ) @@ -1405,9 +1405,9 @@ static INPUT_PORTS_START( common ) PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNUSED ) /* DIP#1 & DIP#2 */ PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) INPUT_PORTS_END diff --git a/src/mame/drivers/kongambl.c b/src/mame/drivers/kongambl.c index dea9dc3d412..79d6c3a85dd 100644 --- a/src/mame/drivers/kongambl.c +++ b/src/mame/drivers/kongambl.c @@ -95,12 +95,12 @@ ADDRESS_MAP_END static INPUT_PORTS_START( kongambl ) PORT_START( "SYSTEM" ) - PORT_BIT( 0x00000008, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x00000008, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END static ADDRESS_MAP_START( kongamaud_map, AS_PROGRAM, 16 ) diff --git a/src/mame/drivers/leland.c b/src/mame/drivers/leland.c index 21adcfa981f..1a4f305c9e5 100644 --- a/src/mame/drivers/leland.c +++ b/src/mame/drivers/leland.c @@ -145,7 +145,7 @@ static INPUT_PORTS_START( cerberus ) /* complete, verified from code */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_START("IN3") /* 0x91 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) @@ -191,7 +191,7 @@ static INPUT_PORTS_START( mayhem ) /* complete, verified from code */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_START("IN3") /* 0xD1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) @@ -224,7 +224,7 @@ static INPUT_PORTS_START( wseries ) /* complete, verified from code */ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Aim") PORT_PLAYER(1) PORT_START("IN3") /* 0x91 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) PORT_PLAYER(1) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_PLAYER(1) @@ -263,7 +263,7 @@ static INPUT_PORTS_START( alleymas ) /* complete, verified from code */ // PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* redundant inputs */ PORT_START("IN3") /* 0xD1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) PORT_PLAYER(1) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_PLAYER(1) @@ -299,7 +299,7 @@ static INPUT_PORTS_START( upyoural ) /* complete, verified from code */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_START("IN3") /* 0xD1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) PORT_PLAYER(1) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_PLAYER(1) @@ -334,7 +334,7 @@ static INPUT_PORTS_START( dangerz ) /* complete, verified from code */ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("IN3") /* 0x91 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) @@ -369,7 +369,7 @@ static INPUT_PORTS_START( basebal2 ) /* complete, verified from code */ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Run/Cutoff") PORT_PLAYER(1) PORT_START("IN3") /* 0x51/D1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) PORT_PLAYER(1) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_PLAYER(1) @@ -406,7 +406,7 @@ static INPUT_PORTS_START( redline ) /* complete, verified in code */ PORT_BIT( 0xe0, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(64) PORT_PLAYER(2) PORT_START("IN3") /* 0xD1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) @@ -444,7 +444,7 @@ static INPUT_PORTS_START( quarterb ) /* complete, verified in code */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_START("IN3") /* 0x91 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) @@ -486,7 +486,7 @@ static INPUT_PORTS_START( teamqb ) /* complete, verified in code */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_START("IN3") /* 0x91 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) @@ -544,7 +544,7 @@ static INPUT_PORTS_START( aafb2p ) /* complete, verified in code */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_START("IN3") /* 0x91 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) @@ -599,7 +599,7 @@ static INPUT_PORTS_START( offroad ) /* complete, verified from code */ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("IN3") /* 0xD1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_LOW ) @@ -659,7 +659,7 @@ static INPUT_PORTS_START( pigout ) /* complete, verified from code */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_START("IN3") /* 0x51 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNUSED ) diff --git a/src/mame/drivers/lethal.c b/src/mame/drivers/lethal.c index 9bbb369f359..b80827b8b9d 100644 --- a/src/mame/drivers/lethal.c +++ b/src/mame/drivers/lethal.c @@ -513,7 +513,7 @@ static INPUT_PORTS_START( lethalen ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) PORT_START("DSW") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* it must be 1 ? */ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -531,9 +531,9 @@ static INPUT_PORTS_START( lethalen ) PORT_DIPSETTING( 0x0080, DEF_STR( Stereo ) ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) PORT_START("LIGHT0_X") PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) diff --git a/src/mame/drivers/limenko.c b/src/mame/drivers/limenko.c index 676a811b207..234daabbcf7 100644 --- a/src/mame/drivers/limenko.c +++ b/src/mame/drivers/limenko.c @@ -535,7 +535,7 @@ static INPUT_PORTS_START( legendoh ) PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_SERVICE_NO_TOGGLE( 0x00200000, IP_ACTIVE_LOW ) PORT_BIT( 0x00400000, IP_ACTIVE_HIGH, IPT_SPECIAL ) //security bit - PORT_BIT( 0x00800000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x00800000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_START3 ) PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_START4 ) PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_COIN3 ) @@ -548,9 +548,9 @@ static INPUT_PORTS_START( legendoh ) PORT_BIT( 0x4000ffff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x00020000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x00040000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) + PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x00020000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x00040000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) // PORT_BIT( 0x00080000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // 0x80000 -> video disabled? INPUT_PORTS_END @@ -584,7 +584,7 @@ static INPUT_PORTS_START( sb2003 ) PORT_BIT( 0x00080000, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_SERVICE_NO_TOGGLE( 0x00200000, IP_ACTIVE_LOW ) PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_SPECIAL ) //security bit - PORT_BIT( 0x00800000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x00800000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_DIPNAME( 0x20000000, 0x00000000, "Sound Enable" ) PORT_DIPSETTING( 0x20000000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) @@ -593,9 +593,9 @@ static INPUT_PORTS_START( sb2003 ) PORT_BIT( 0x5f00ffff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x00020000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x00040000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) + PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x00020000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x00040000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) // PORT_BIT( 0x00080000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // 0x80000 -> video disabled? INPUT_PORTS_END @@ -629,7 +629,7 @@ static INPUT_PORTS_START( spotty ) PORT_BIT( 0x00080000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(spriteram_bit_r, NULL) //changes spriteram location PORT_SERVICE_NO_TOGGLE( 0x00200000, IP_ACTIVE_LOW ) PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_SPECIAL ) //security bit - PORT_BIT( 0x00800000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x00800000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_DIPNAME( 0x20000000, 0x20000000, DEF_STR( Demo_Sounds ) ) PORT_DIPSETTING( 0x00000000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x20000000, DEF_STR( On ) ) @@ -637,9 +637,9 @@ static INPUT_PORTS_START( spotty ) PORT_BIT( 0x5f10ffff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x00020000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x00040000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) + PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x00020000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x00040000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) // PORT_BIT( 0x00080000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // 0x80000 -> video disabled? INPUT_PORTS_END diff --git a/src/mame/drivers/lordgun.c b/src/mame/drivers/lordgun.c index b312ebf72cb..0d19730b05c 100644 --- a/src/mame/drivers/lordgun.c +++ b/src/mame/drivers/lordgun.c @@ -145,7 +145,7 @@ static WRITE8_DEVICE_HANDLER(fake2_w) static WRITE8_DEVICE_HANDLER( lordgun_eeprom_w ) { lordgun_state *state = device->machine().driver_data(); - device_t *eeprom = device->machine().device("eeprom"); + eeprom_device *eeprom = device->machine().device("eeprom"); int i; if (data & ~0xfd) @@ -162,13 +162,13 @@ static WRITE8_DEVICE_HANDLER( lordgun_eeprom_w ) lordgun_update_gun(device->machine(), i); // latch the bit - eeprom_write_bit(eeprom, data & 0x40); + eeprom->write_bit(data & 0x40); // reset line asserted: reset. - eeprom_set_cs_line(eeprom, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE ); + eeprom->set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE ); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line(eeprom, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE ); + eeprom->set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE ); state->m_whitescreen = data & 0x80; @@ -178,7 +178,7 @@ static WRITE8_DEVICE_HANDLER( lordgun_eeprom_w ) static WRITE8_DEVICE_HANDLER( aliencha_eeprom_w ) { lordgun_state *state = device->machine().driver_data(); - device_t *eeprom = device->machine().device("eeprom"); + eeprom_device *eeprom = device->machine().device("eeprom"); if (~data & ~0xf8) { @@ -193,13 +193,13 @@ static WRITE8_DEVICE_HANDLER( aliencha_eeprom_w ) coin_counter_w(device->machine(), 1, data & 0x10); // latch the bit - eeprom_write_bit(eeprom, data & 0x80); + eeprom->write_bit(data & 0x80); // reset line asserted: reset. - eeprom_set_cs_line(eeprom, (data & 0x20) ? CLEAR_LINE : ASSERT_LINE ); + eeprom->set_cs_line((data & 0x20) ? CLEAR_LINE : ASSERT_LINE ); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line(eeprom, (data & 0x40) ? ASSERT_LINE : CLEAR_LINE ); + eeprom->set_clock_line((data & 0x40) ? ASSERT_LINE : CLEAR_LINE ); } @@ -443,7 +443,7 @@ static INPUT_PORTS_START( lordgun ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START("START1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) @@ -564,7 +564,7 @@ static INPUT_PORTS_START( aliencha ) PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "SW3:8" ) /* Listed as "Unused" */ PORT_START("SERVICE") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) diff --git a/src/mame/drivers/metro.c b/src/mame/drivers/metro.c index 5903f020fac..4301c41370f 100644 --- a/src/mame/drivers/metro.c +++ b/src/mame/drivers/metro.c @@ -1308,21 +1308,24 @@ static READ16_HANDLER( gakusai_input_r ) static READ16_DEVICE_HANDLER( gakusai_eeprom_r ) { - return eeprom_read_bit(device) & 1; + eeprom_device *eeprom = downcast(device); + return eeprom->read_bit() & 1; } static WRITE16_DEVICE_HANDLER( gakusai_eeprom_w ) { if (ACCESSING_BITS_0_7) { + eeprom_device *eeprom = downcast(device); + // latch the bit - eeprom_write_bit(device, BIT(data, 0)); + eeprom->write_bit(BIT(data, 0)); // reset line asserted: reset. - eeprom_set_cs_line(device, BIT(data, 2) ? CLEAR_LINE : ASSERT_LINE ); + eeprom->set_cs_line(BIT(data, 2) ? CLEAR_LINE : ASSERT_LINE ); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line(device, BIT(data, 1) ? ASSERT_LINE : CLEAR_LINE ); + eeprom->set_clock_line(BIT(data, 1) ? ASSERT_LINE : CLEAR_LINE ); } } @@ -1404,10 +1407,11 @@ ADDRESS_MAP_END static READ16_DEVICE_HANDLER( dokyusp_eeprom_r ) { // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line(device, CLEAR_LINE); - eeprom_set_clock_line(device, ASSERT_LINE); + eeprom_device *eeprom = downcast(device); + eeprom->set_clock_line(CLEAR_LINE); + eeprom->set_clock_line(ASSERT_LINE); - return eeprom_read_bit(device) & 1; + return eeprom->read_bit() & 1; } static WRITE16_DEVICE_HANDLER( dokyusp_eeprom_bit_w ) @@ -1415,11 +1419,12 @@ static WRITE16_DEVICE_HANDLER( dokyusp_eeprom_bit_w ) if (ACCESSING_BITS_0_7) { // latch the bit - eeprom_write_bit(device, BIT(data, 0)); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(BIT(data, 0)); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line(device, CLEAR_LINE); - eeprom_set_clock_line(device, ASSERT_LINE); + eeprom->set_clock_line(CLEAR_LINE); + eeprom->set_clock_line(ASSERT_LINE); } } @@ -1428,7 +1433,8 @@ static WRITE16_DEVICE_HANDLER( dokyusp_eeprom_reset_w ) if (ACCESSING_BITS_0_7) { // reset line asserted: reset. - eeprom_set_cs_line(device, BIT(data, 0) ? CLEAR_LINE : ASSERT_LINE); + eeprom_device *eeprom = downcast(device); + eeprom->set_cs_line(BIT(data, 0) ? CLEAR_LINE : ASSERT_LINE); } } diff --git a/src/mame/drivers/midas.c b/src/mame/drivers/midas.c index 9ffbe48cc67..8bee7277385 100644 --- a/src/mame/drivers/midas.c +++ b/src/mame/drivers/midas.c @@ -203,13 +203,14 @@ static WRITE16_DEVICE_HANDLER( midas_eeprom_w ) if (ACCESSING_BITS_0_7) { // latch the bit - eeprom_write_bit(device, data & 0x04); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x04); // reset line asserted: reset. - eeprom_set_cs_line(device, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE ); + eeprom->set_cs_line((data & 0x01) ? CLEAR_LINE : ASSERT_LINE ); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line(device, (data & 0x02) ? ASSERT_LINE : CLEAR_LINE ); + eeprom->set_clock_line((data & 0x02) ? ASSERT_LINE : CLEAR_LINE ); } } @@ -443,7 +444,7 @@ static INPUT_PORTS_START( livequiz ) PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) // EEPROM + PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) // EEPROM PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_SERVICE_NO_TOGGLE( 0x0040, IP_ACTIVE_LOW ) @@ -576,7 +577,7 @@ static INPUT_PORTS_START( hammer ) PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_SERVICE_NO_TOGGLE( 0x0040, IP_ACTIVE_LOW ) diff --git a/src/mame/drivers/mitchell.c b/src/mame/drivers/mitchell.c index 5cef4ab74e7..ef7df4fce43 100644 --- a/src/mame/drivers/mitchell.c +++ b/src/mame/drivers/mitchell.c @@ -113,7 +113,7 @@ static NVRAM_HANDLER( mitchell ) static READ8_HANDLER( pang_port5_r ) { - int bit = eeprom_read_bit(space->machine().device("eeprom")) << 7; + int bit = space->machine().device("eeprom")->read_bit() << 7; /* bits 0 and (sometimes) 3 are checked in the interrupt handler. bit 3 is checked before updating the palette so it really seems to be vblank. @@ -129,17 +129,20 @@ static READ8_HANDLER( pang_port5_r ) static WRITE8_DEVICE_HANDLER( eeprom_cs_w ) { - eeprom_set_cs_line(device, data ? CLEAR_LINE : ASSERT_LINE); + eeprom_device *eeprom = downcast(device); + eeprom->set_cs_line(data ? CLEAR_LINE : ASSERT_LINE); } static WRITE8_DEVICE_HANDLER( eeprom_clock_w ) { - eeprom_set_clock_line(device, data ? CLEAR_LINE : ASSERT_LINE); + eeprom_device *eeprom = downcast(device); + eeprom->set_clock_line(data ? CLEAR_LINE : ASSERT_LINE); } static WRITE8_DEVICE_HANDLER( eeprom_serial_w ) { - eeprom_write_bit(device, data); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data); } diff --git a/src/mame/drivers/model2.c b/src/mame/drivers/model2.c index d1c2b8e26c3..54e52f13b0b 100644 --- a/src/mame/drivers/model2.c +++ b/src/mame/drivers/model2.c @@ -424,11 +424,11 @@ static WRITE32_HANDLER( ctrl0_w ) model2_state *state = space->machine().driver_data(); if(ACCESSING_BITS_0_7) { - eeprom_device *device = space->machine().device("eeprom"); + eeprom_device *eeprom = space->machine().device("eeprom"); state->m_ctrlmode = data & 0x01; - eeprom_write_bit(device, data & 0x20); - eeprom_set_clock_line(device, (data & 0x80) ? ASSERT_LINE : CLEAR_LINE); - eeprom_set_cs_line(device, (data & 0x40) ? CLEAR_LINE : ASSERT_LINE); + eeprom->write_bit(data & 0x20); + eeprom->set_clock_line((data & 0x80) ? ASSERT_LINE : CLEAR_LINE); + eeprom->set_cs_line((data & 0x40) ? CLEAR_LINE : ASSERT_LINE); } } @@ -470,7 +470,7 @@ static CUSTOM_INPUT( _1c00000_r ) else { ret &= ~0x0030; - return ret | 0x00d0 | (eeprom_read_bit(field.machine().device("eeprom")) << 5); + return ret | 0x00d0 | (field.machine().device("eeprom")->read_bit() << 5); } } diff --git a/src/mame/drivers/model3.c b/src/mame/drivers/model3.c index 1574bde539a..53f1794287a 100644 --- a/src/mame/drivers/model3.c +++ b/src/mame/drivers/model3.c @@ -1351,11 +1351,11 @@ static WRITE64_HANDLER( model3_ctrl_w ) case 0: if (ACCESSING_BITS_56_63) { - device_t *device = space->machine().device("eeprom"); + eeprom_device *eeprom = space->machine().device("eeprom"); int reg = (data >> 56) & 0xff; - eeprom_write_bit(device, (reg & 0x20) ? 1 : 0); - eeprom_set_clock_line(device, (reg & 0x80) ? ASSERT_LINE : CLEAR_LINE); - eeprom_set_cs_line(device, (reg & 0x40) ? CLEAR_LINE : ASSERT_LINE); + eeprom->write_bit((reg & 0x20) ? 1 : 0); + eeprom->set_clock_line((reg & 0x80) ? ASSERT_LINE : CLEAR_LINE); + eeprom->set_cs_line((reg & 0x40) ? CLEAR_LINE : ASSERT_LINE); state->m_controls_bank = reg & 0xff; } return; @@ -1826,7 +1826,7 @@ static INPUT_PORTS_START( common ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN1") - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service Button B") PORT_CODE(KEYCODE_8) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Test Button B") PORT_CODE(KEYCODE_7) PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -2061,7 +2061,7 @@ static INPUT_PORTS_START( skichamp ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) /* Select 2 */ PORT_START("IN1") - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service Button B") PORT_CODE(KEYCODE_8) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Test Button B") PORT_CODE(KEYCODE_7) PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNUSED ) diff --git a/src/mame/drivers/moo.c b/src/mame/drivers/moo.c index 30d9cff4e69..82d3234b511 100644 --- a/src/mame/drivers/moo.c +++ b/src/mame/drivers/moo.c @@ -386,7 +386,7 @@ static INPUT_PORTS_START( moo ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 ) PORT_START("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM ready (always 1) */ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_SERVICE_NO_TOGGLE(0x08, IP_ACTIVE_LOW) @@ -402,9 +402,9 @@ static INPUT_PORTS_START( moo ) PORT_DIPSETTING( 0x80, "4") PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) PORT_START("P1_P3") KONAMI16_LSB( 1, IPT_UNKNOWN, IPT_START1 ) diff --git a/src/mame/drivers/mystwarr.c b/src/mame/drivers/mystwarr.c index c2e02d08a9e..c8842288565 100644 --- a/src/mame/drivers/mystwarr.c +++ b/src/mame/drivers/mystwarr.c @@ -631,7 +631,7 @@ static INPUT_PORTS_START( mystwarr ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM ready (always 1) */ PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* game loops if this is set */ @@ -655,9 +655,9 @@ static INPUT_PORTS_START( mystwarr ) KONAMI16_MSB(4, IPT_BUTTON3, IPT_START4 ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) INPUT_PORTS_END static INPUT_PORTS_START( metamrph ) @@ -672,7 +672,7 @@ static INPUT_PORTS_START( metamrph ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM ready (always 1) */ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_LOW ) @@ -698,9 +698,9 @@ static INPUT_PORTS_START( metamrph ) KONAMI16_MSB(4, IPT_BUTTON3, IPT_START4 ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) INPUT_PORTS_END static INPUT_PORTS_START( viostorm ) @@ -715,7 +715,7 @@ static INPUT_PORTS_START( viostorm ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM ready (always 1) */ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_LOW ) @@ -741,9 +741,9 @@ static INPUT_PORTS_START( viostorm ) KONAMI16_MSB(4, IPT_BUTTON3, IPT_START4 ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) INPUT_PORTS_END static INPUT_PORTS_START( dadandrn ) @@ -759,7 +759,7 @@ static INPUT_PORTS_START( dadandrn ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM ready (always 1) */ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_LOW ) @@ -782,9 +782,9 @@ static INPUT_PORTS_START( dadandrn ) KONAMI8_B123_START(4) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) INPUT_PORTS_END static INPUT_PORTS_START( martchmp ) @@ -799,7 +799,7 @@ static INPUT_PORTS_START( martchmp ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM ready (always 1) */ PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* game loops if this is set */ @@ -821,9 +821,9 @@ static INPUT_PORTS_START( martchmp ) KONAMI16_MSB(4, IPT_BUTTON3, IPT_START4 ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) INPUT_PORTS_END /**********************************************************************************/ diff --git a/src/mame/drivers/naomi.c b/src/mame/drivers/naomi.c index 5c4307501cf..c2218fdbeee 100644 --- a/src/mame/drivers/naomi.c +++ b/src/mame/drivers/naomi.c @@ -1393,7 +1393,7 @@ static READ64_DEVICE_HANDLER( eeprom_93c46a_r ) int res; /* bit 3 is EEPROM data */ - res = eeprom_read_bit(device) << 4; + res = downcast(device)->read_bit() << 4; return res; } @@ -1402,9 +1402,10 @@ static WRITE64_DEVICE_HANDLER( eeprom_93c46a_w ) /* bit 4 is data */ /* bit 2 is clock */ /* bit 5 is cs */ - eeprom_write_bit(device, data & 0x8); - eeprom_set_cs_line(device, (data & 0x20) ? CLEAR_LINE : ASSERT_LINE); - eeprom_set_clock_line(device, (data & 0x4) ? ASSERT_LINE : CLEAR_LINE); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x8); + eeprom->set_cs_line((data & 0x20) ? CLEAR_LINE : ASSERT_LINE); + eeprom->set_clock_line((data & 0x4) ? ASSERT_LINE : CLEAR_LINE); } /* Dreamcast MAP @@ -1736,9 +1737,9 @@ INPUT_PORTS_END static INPUT_PORTS_START( naomi_mie ) PORT_START("MIE:3") - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("mie_eeprom", eeprom_write_bit) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("mie_eeprom", eeprom_set_cs_line) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("mie_eeprom", eeprom_set_clock_line) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("mie_eeprom", eeprom_device, write_bit) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("mie_eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("mie_eeprom", eeprom_device, set_clock_line) PORT_START("MIE:5") PORT_DIPNAME( 0x01, 0x00, "Monitor" ) PORT_DIPLOCATION("SW1:1") @@ -1756,7 +1757,7 @@ static INPUT_PORTS_START( naomi_mie ) PORT_SERVICE_NO_TOGGLE( 0x10, IP_ACTIVE_LOW ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("mie_eeprom", eeprom_read_bit) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("mie_eeprom", eeprom_device, read_bit) INPUT_PORTS_END /* 2 players with 1 joystick and 6 buttons each */ diff --git a/src/mame/drivers/othunder.c b/src/mame/drivers/othunder.c index 57a7ab2a9dd..57651b0c7c2 100644 --- a/src/mame/drivers/othunder.c +++ b/src/mame/drivers/othunder.c @@ -336,9 +336,9 @@ static WRITE16_HANDLER( othunder_tc0220ioc_w ) if (data & 4) popmessage("OBPRI SET!"); - eeprom_write_bit(state->m_eeprom, data & 0x40); - eeprom_set_clock_line(state->m_eeprom, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE); - eeprom_set_cs_line(state->m_eeprom, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); + state->m_eeprom->write_bit(data & 0x40); + state->m_eeprom->set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE); + state->m_eeprom->set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE); break; default: @@ -359,7 +359,7 @@ static READ16_HANDLER( othunder_tc0220ioc_r ) switch (offset) { case 0x03: - return (eeprom_read_bit(state->m_eeprom) & 1) << 7; + return (state->m_eeprom->read_bit() & 1) << 7; default: return tc0220ioc_r(state->m_tc0220ioc, offset); @@ -685,7 +685,7 @@ static MACHINE_START( othunder ) state->m_maincpu = machine.device("maincpu"); state->m_audiocpu = machine.device("audiocpu"); - state->m_eeprom = machine.device("eeprom"); + state->m_eeprom = machine.device("eeprom"); state->m_tc0220ioc = machine.device("tc0220ioc"); state->m_tc0100scn = machine.device("tc0100scn"); state->m_tc0110pcr = machine.device("tc0110pcr"); diff --git a/src/mame/drivers/overdriv.c b/src/mame/drivers/overdriv.c index f1d121b0feb..e39f8c0e733 100644 --- a/src/mame/drivers/overdriv.c +++ b/src/mame/drivers/overdriv.c @@ -222,7 +222,7 @@ static INPUT_PORTS_START( overdriv ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("SYSTEM") @@ -239,9 +239,9 @@ static INPUT_PORTS_START( overdriv ) PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_SENSITIVITY(100) PORT_KEYDELTA(50) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END diff --git a/src/mame/drivers/pirates.c b/src/mame/drivers/pirates.c index 6603b77e7fe..29b0b01f4cd 100644 --- a/src/mame/drivers/pirates.c +++ b/src/mame/drivers/pirates.c @@ -112,9 +112,9 @@ static WRITE16_HANDLER( pirates_out_w ) eeprom_device *eeprom = space->machine().device("eeprom"); /* bits 0-2 control EEPROM */ - eeprom_write_bit(eeprom, data & 0x04); - eeprom_set_cs_line(eeprom, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); - eeprom_set_clock_line(eeprom, (data & 0x02) ? ASSERT_LINE : CLEAR_LINE); + eeprom->write_bit(data & 0x04); + eeprom->set_cs_line((data & 0x01) ? CLEAR_LINE : ASSERT_LINE); + eeprom->set_clock_line((data & 0x02) ? ASSERT_LINE : CLEAR_LINE); /* bit 6 selects oki bank */ okim6295_device *oki = space->machine().device("oki"); @@ -209,7 +209,7 @@ static INPUT_PORTS_START( pirates ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_SERVICE_NO_TOGGLE( 0x0008, IP_ACTIVE_LOW ) - PORT_BIT( 0x0010, IP_ACTIVE_HIGH,IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) // EEPROM data + PORT_BIT( 0x0010, IP_ACTIVE_HIGH,IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) // EEPROM data PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // seems checked in "test mode" PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // seems checked in "test mode" PORT_BIT( 0x0080, IP_ACTIVE_HIGH,IPT_SPECIAL ) PORT_CUSTOM(prot_r, NULL) // protection diff --git a/src/mame/drivers/playmark.c b/src/mame/drivers/playmark.c index 2776d2efb1a..d7dd90b5939 100644 --- a/src/mame/drivers/playmark.c +++ b/src/mame/drivers/playmark.c @@ -93,9 +93,9 @@ static WRITE16_HANDLER( wbeachvl_coin_eeprom_w ) coin_counter_w(space->machine(), 3, data & 0x08); /* bits 5-7 control EEPROM */ - eeprom_set_cs_line(state->m_eeprom, (data & 0x20) ? CLEAR_LINE : ASSERT_LINE); - eeprom_write_bit(state->m_eeprom, data & 0x80); - eeprom_set_clock_line(state->m_eeprom, (data & 0x40) ? CLEAR_LINE : ASSERT_LINE); + state->m_eeprom->set_cs_line((data & 0x20) ? CLEAR_LINE : ASSERT_LINE); + state->m_eeprom->write_bit(data & 0x80); + state->m_eeprom->set_clock_line((data & 0x40) ? CLEAR_LINE : ASSERT_LINE); } } @@ -107,9 +107,9 @@ static WRITE16_HANDLER( hotmind_coin_eeprom_w ) { coin_counter_w(space->machine(), 0,data & 0x20); - eeprom_set_cs_line(state->m_eeprom, (data & 1) ? CLEAR_LINE : ASSERT_LINE); - eeprom_write_bit(state->m_eeprom, data & 4); - eeprom_set_clock_line(state->m_eeprom, (data & 2) ? ASSERT_LINE : CLEAR_LINE ); + state->m_eeprom->set_cs_line((data & 1) ? CLEAR_LINE : ASSERT_LINE); + state->m_eeprom->write_bit(data & 4); + state->m_eeprom->set_clock_line((data & 2) ? ASSERT_LINE : CLEAR_LINE ); } } @@ -567,7 +567,7 @@ static INPUT_PORTS_START( wbeachvl ) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_SERVICE_NO_TOGGLE(0x20, IP_ACTIVE_LOW) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* ?? see code at 746a. sound status? */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) /* EEPROM data */ + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) /* EEPROM data */ PORT_START("P1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) @@ -733,7 +733,7 @@ static INPUT_PORTS_START( hotmind ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) /* EEPROM data */ + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) /* EEPROM data */ PORT_START("DSW1") PORT_DIPNAME( 0x07, 0x07, DEF_STR( Difficulty ) ) @@ -1038,7 +1038,7 @@ static MACHINE_START( playmark ) playmark_state *state = machine.driver_data(); state->m_oki = machine.device("oki"); - state->m_eeprom = machine.device("eeprom"); + state->m_eeprom = machine.device("eeprom"); state->save_item(NAME(state->m_bgscrollx)); state->save_item(NAME(state->m_bgscrolly)); diff --git a/src/mame/drivers/plygonet.c b/src/mame/drivers/plygonet.c index ab8a0ccd2cc..bb2c3104980 100644 --- a/src/mame/drivers/plygonet.c +++ b/src/mame/drivers/plygonet.c @@ -105,7 +105,8 @@ static READ32_DEVICE_HANDLER( polygonet_eeprom_r ) { if (ACCESSING_BITS_0_15) { - return 0x0200 | (eeprom_read_bit(device) << 8); + eeprom_device *eeprom = downcast(device); + return 0x0200 | (eeprom->read_bit() << 8); } else { @@ -706,9 +707,9 @@ static INPUT_PORTS_START( polygonet ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01000000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x04000000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x01000000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x04000000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) INPUT_PORTS_END static INPUT_PORTS_START( polynetw ) @@ -733,9 +734,9 @@ static INPUT_PORTS_START( polynetw ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01000000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x04000000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x01000000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x04000000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) INPUT_PORTS_END diff --git a/src/mame/drivers/pntnpuzl.c b/src/mame/drivers/pntnpuzl.c index 72653af0b0f..7c1bedbd731 100644 --- a/src/mame/drivers/pntnpuzl.c +++ b/src/mame/drivers/pntnpuzl.c @@ -161,7 +161,8 @@ static READ16_DEVICE_HANDLER( pntnpuzl_eeprom_r ) { pntnpuzl_state *state = device->machine().driver_data(); /* bit 11 is EEPROM data */ - return (state->m_eeprom & 0xf4ff) | (eeprom_read_bit(device)<<11) | (input_port_read(device->machine(), "IN1") & 0x0300); + eeprom_device *eeprom = downcast(device); + return (state->m_eeprom & 0xf4ff) | (eeprom->read_bit()<<11) | (input_port_read(device->machine(), "IN1") & 0x0300); } static WRITE16_DEVICE_HANDLER( pntnpuzl_eeprom_w ) @@ -173,9 +174,10 @@ static WRITE16_DEVICE_HANDLER( pntnpuzl_eeprom_w ) /* bit 13 is clock (active high) */ /* bit 14 is cs (active high) */ - eeprom_write_bit(device, data & 0x1000); - eeprom_set_cs_line(device, (data & 0x4000) ? CLEAR_LINE : ASSERT_LINE); - eeprom_set_clock_line(device, (data & 0x2000) ? ASSERT_LINE : CLEAR_LINE); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x1000); + eeprom->set_cs_line((data & 0x4000) ? CLEAR_LINE : ASSERT_LINE); + eeprom->set_clock_line((data & 0x2000) ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/drivers/policetr.c b/src/mame/drivers/policetr.c index b4b2b64015c..26b27d619fc 100644 --- a/src/mame/drivers/policetr.c +++ b/src/mame/drivers/policetr.c @@ -137,10 +137,10 @@ static WRITE32_HANDLER( control_w ) /* handle EEPROM I/O */ if (ACCESSING_BITS_16_23) { - device_t *device = space->machine().device("eeprom"); - eeprom_write_bit(device, data & 0x00800000); - eeprom_set_cs_line(device, (data & 0x00200000) ? CLEAR_LINE : ASSERT_LINE); - eeprom_set_clock_line(device, (data & 0x00400000) ? ASSERT_LINE : CLEAR_LINE); + eeprom_device *eeprom = space->machine().device("eeprom"); + eeprom->write_bit(data & 0x00800000); + eeprom->set_cs_line((data & 0x00200000) ? CLEAR_LINE : ASSERT_LINE); + eeprom->set_clock_line((data & 0x00400000) ? ASSERT_LINE : CLEAR_LINE); } /* toggling BSMT off then on causes a reset */ @@ -332,7 +332,7 @@ static INPUT_PORTS_START( policetr ) PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x10000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) /* EEPROM read */ + PORT_BIT( 0x20000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) /* EEPROM read */ PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) diff --git a/src/mame/drivers/powerbal.c b/src/mame/drivers/powerbal.c index 1c738c11bec..7d7ab883567 100644 --- a/src/mame/drivers/powerbal.c +++ b/src/mame/drivers/powerbal.c @@ -38,9 +38,10 @@ static WRITE16_DEVICE_HANDLER( magicstk_coin_eeprom_w ) { coin_counter_w(device->machine(), 0, data & 0x20); - eeprom_set_cs_line(device, (data & 8) ? CLEAR_LINE : ASSERT_LINE); - eeprom_write_bit(device, data & 2); - eeprom_set_clock_line(device, (data & 4) ? CLEAR_LINE : ASSERT_LINE); + eeprom_device *eeprom = downcast(device); + eeprom->set_cs_line((data & 8) ? CLEAR_LINE : ASSERT_LINE); + eeprom->write_bit(data & 2); + eeprom->set_clock_line((data & 4) ? CLEAR_LINE : ASSERT_LINE); } } @@ -220,7 +221,7 @@ static INPUT_PORTS_START( magicstk ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) /* EEPROM data */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) /* EEPROM data */ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -317,7 +318,7 @@ static INPUT_PORTS_START( hotminda ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) /* EEPROM data */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) /* EEPROM data */ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) diff --git a/src/mame/drivers/psikyo4.c b/src/mame/drivers/psikyo4.c index 6cccc86b03e..97c64f50bdf 100644 --- a/src/mame/drivers/psikyo4.c +++ b/src/mame/drivers/psikyo4.c @@ -169,9 +169,10 @@ static WRITE32_DEVICE_HANDLER( ps4_eeprom_w ) { if (ACCESSING_BITS_16_31) { - eeprom_write_bit(device, (data & 0x00200000) ? 1 : 0); - eeprom_set_cs_line(device, (data & 0x00800000) ? CLEAR_LINE : ASSERT_LINE); - eeprom_set_clock_line(device, (data & 0x00400000) ? ASSERT_LINE : CLEAR_LINE); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit((data & 0x00200000) ? 1 : 0); + eeprom->set_cs_line((data & 0x00800000) ? CLEAR_LINE : ASSERT_LINE); + eeprom->set_clock_line((data & 0x00400000) ? ASSERT_LINE : CLEAR_LINE); return; } @@ -415,7 +416,7 @@ static INPUT_PORTS_START( hotgmck ) PORT_START("JP4")/* jumper pads 'JP4' on the PCB */ /* EEPROM is read here */ - PORT_BIT( 0x00100000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x00100000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START("SYSTEM") /* system inputs */ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) // Screen 1 @@ -598,7 +599,7 @@ static INPUT_PORTS_START( loderndf ) PORT_DIPSETTING( 0x00000000, "Japan (Shows Version Number)" ) PORT_DIPSETTING( 0x00010000, "World (Does Not Show Version Number)" ) /* EEPROM is read here */ - PORT_BIT( 0x00100000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x00100000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) INPUT_PORTS_END /* unused inputs also act as duplicate buttons */ @@ -681,7 +682,7 @@ static INPUT_PORTS_START( hotdebut ) PORT_START("JP4")/* jumper pads 'JP4' on the PCB */ /* EEPROM is read here */ - PORT_BIT( 0x00100000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x00100000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) INPUT_PORTS_END diff --git a/src/mame/drivers/psikyosh.c b/src/mame/drivers/psikyosh.c index 652c4c2264b..39781c70c0f 100644 --- a/src/mame/drivers/psikyosh.c +++ b/src/mame/drivers/psikyosh.c @@ -323,9 +323,10 @@ static WRITE32_DEVICE_HANDLER( psh_eeprom_w ) { if (ACCESSING_BITS_24_31) { - eeprom_write_bit(device, (data & 0x20000000) ? 1 : 0); - eeprom_set_cs_line(device, (data & 0x80000000) ? CLEAR_LINE : ASSERT_LINE); - eeprom_set_clock_line(device, (data & 0x40000000) ? ASSERT_LINE : CLEAR_LINE); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit((data & 0x20000000) ? 1 : 0); + eeprom->set_cs_line((data & 0x80000000) ? CLEAR_LINE : ASSERT_LINE); + eeprom->set_clock_line((data & 0x40000000) ? ASSERT_LINE : CLEAR_LINE); return; } @@ -621,7 +622,7 @@ static INPUT_PORTS_START( s1945ii ) PORT_DIPNAME( 0x01000000, 0x01000000, DEF_STR( Region ) ) PORT_DIPSETTING( 0x00000000, DEF_STR( Japan ) ) PORT_DIPSETTING( 0x01000000, DEF_STR( World ) ) - PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) INPUT_PORTS_END static INPUT_PORTS_START( soldivid ) @@ -631,7 +632,7 @@ static INPUT_PORTS_START( soldivid ) PORT_DIPNAME( 0x01000000, 0x01000000, DEF_STR( Region ) ) PORT_DIPSETTING( 0x00000000, DEF_STR( Japan ) ) PORT_DIPSETTING( 0x01000000, DEF_STR( World ) ) - PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) INPUT_PORTS_END static INPUT_PORTS_START( daraku ) @@ -649,7 +650,7 @@ static INPUT_PORTS_START( daraku ) PORT_DIPNAME( 0x01000000, 0x01000000, DEF_STR( Region ) ) PORT_DIPSETTING( 0x00000000, DEF_STR( Japan ) ) PORT_DIPSETTING( 0x01000000, DEF_STR( World ) ) /* Title screen is different, English is default now */ - PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) INPUT_PORTS_END static INPUT_PORTS_START( sbomberb ) @@ -664,7 +665,7 @@ static INPUT_PORTS_START( sbomberb ) PORT_DIPNAME( 0x01000000, 0x01000000, DEF_STR( Region ) ) PORT_DIPSETTING( 0x00000000, DEF_STR( Japan ) ) PORT_DIPSETTING( 0x01000000, DEF_STR( World ) ) - PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) INPUT_PORTS_END static INPUT_PORTS_START( gunbird2 ) /* Different Region */ @@ -676,7 +677,7 @@ static INPUT_PORTS_START( gunbird2 ) /* Different Region */ PORT_DIPSETTING( 0x00000000, DEF_STR( Japan ) ) PORT_DIPSETTING( 0x01000000, "International Ver A." ) PORT_DIPSETTING( 0x02000000, "International Ver B." ) - PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) INPUT_PORTS_END static INPUT_PORTS_START( s1945iii ) /* Different Region again */ @@ -688,7 +689,7 @@ static INPUT_PORTS_START( s1945iii ) /* Different Region again */ PORT_DIPSETTING( 0x00000000, DEF_STR( Japan ) ) PORT_DIPSETTING( 0x02000000, "International Ver A." ) PORT_DIPSETTING( 0x01000000, "International Ver B." ) - PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) INPUT_PORTS_END static INPUT_PORTS_START( dragnblz ) /* Security requires bit high */ @@ -704,7 +705,7 @@ static INPUT_PORTS_START( dragnblz ) /* Security requires bit high */ PORT_DIPSETTING( 0x00000000, DEF_STR( Japan ) ) PORT_DIPSETTING( 0x02000000, "International Ver A." ) PORT_DIPSETTING( 0x01000000, "International Ver B." ) - PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) INPUT_PORTS_END static INPUT_PORTS_START( gnbarich ) /* Same as S1945iii except only one button */ @@ -716,7 +717,7 @@ static INPUT_PORTS_START( gnbarich ) /* Same as S1945iii except only one button PORT_DIPSETTING( 0x00000000, DEF_STR( Japan ) ) PORT_DIPSETTING( 0x02000000, "International Ver A." ) PORT_DIPSETTING( 0x01000000, "International Ver B." ) - PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) INPUT_PORTS_END static INPUT_PORTS_START( tgm2 ) @@ -728,7 +729,7 @@ static INPUT_PORTS_START( tgm2 ) // PORT_DIPSETTING( 0x00000000, DEF_STR( Japan ) ) // PORT_DIPSETTING( 0x02000000, "International Ver A." ) // PORT_DIPSETTING( 0x01000000, "International Ver B." ) - PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) INPUT_PORTS_END static INPUT_PORTS_START( mjgtaste ) @@ -782,7 +783,7 @@ static INPUT_PORTS_START( mjgtaste ) // PORT_DIPSETTING( 0x00000000, DEF_STR( Japan ) ) // PORT_DIPSETTING( 0x02000000, "International Ver A." ) // PORT_DIPSETTING( 0x01000000, "International Ver B." ) - PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) INPUT_PORTS_END diff --git a/src/mame/drivers/pzletime.c b/src/mame/drivers/pzletime.c index f384486d18f..5ec769dc64c 100644 --- a/src/mame/drivers/pzletime.c +++ b/src/mame/drivers/pzletime.c @@ -152,9 +152,10 @@ static WRITE16_DEVICE_HANDLER( eeprom_w ) { if (ACCESSING_BITS_0_7) { - eeprom_write_bit(device, data & 0x01); - eeprom_set_cs_line(device, (data & 0x02) ? CLEAR_LINE : ASSERT_LINE ); - eeprom_set_clock_line(device, (data & 0x04) ? ASSERT_LINE : CLEAR_LINE ); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x01); + eeprom->set_cs_line((data & 0x02) ? CLEAR_LINE : ASSERT_LINE ); + eeprom->set_clock_line((data & 0x04) ? ASSERT_LINE : CLEAR_LINE ); } } @@ -231,7 +232,7 @@ static INPUT_PORTS_START( pzletime ) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_VBLANK ) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) /* eeprom */ + PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) /* eeprom */ PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(ticket_status_r, NULL) /* ticket dispenser */ PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) diff --git a/src/mame/drivers/r2dx_v33.c b/src/mame/drivers/r2dx_v33.c index f1a021cea5f..bb6e3295383 100644 --- a/src/mame/drivers/r2dx_v33.c +++ b/src/mame/drivers/r2dx_v33.c @@ -235,9 +235,10 @@ WRITE16_DEVICE_HANDLER( rdx_v33_eeprom_w ) { if (ACCESSING_BITS_0_7) { - eeprom_set_clock_line(device, (data & 0x10) ? ASSERT_LINE : CLEAR_LINE); - eeprom_write_bit(device, data & 0x20); - eeprom_set_cs_line(device, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE); + eeprom_device *eeprom = downcast(device); + eeprom->set_clock_line((data & 0x10) ? ASSERT_LINE : CLEAR_LINE); + eeprom->write_bit(data & 0x20); + eeprom->set_cs_line((data & 0x08) ? CLEAR_LINE : ASSERT_LINE); if (data&0xc7) logerror("eeprom_w extra bits used %04x\n",data); } @@ -531,7 +532,7 @@ static INPUT_PORTS_START( rdx_v33 ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_DIPNAME( 0x0040, 0x0040, "Test Mode" ) PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) @@ -570,7 +571,7 @@ static INPUT_PORTS_START( nzerotea ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNUSED ) - //PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + //PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_DIPNAME( 0x0040, 0x0040, "Test Mode" ) PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) diff --git a/src/mame/drivers/rabbit.c b/src/mame/drivers/rabbit.c index beb09e13e83..2f81045a31e 100644 --- a/src/mame/drivers/rabbit.c +++ b/src/mame/drivers/rabbit.c @@ -725,13 +725,14 @@ static WRITE32_DEVICE_HANDLER( rabbit_eeprom_write ) if (mem_mask == 0xff000000) { // latch the bit - eeprom_write_bit(device, data & 0x01000000); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x01000000); // reset line asserted: reset. - eeprom_set_cs_line(device, (data & 0x04000000) ? CLEAR_LINE : ASSERT_LINE ); + eeprom->set_cs_line((data & 0x04000000) ? CLEAR_LINE : ASSERT_LINE ); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line(device, (data & 0x02000000) ? ASSERT_LINE : CLEAR_LINE ); + eeprom->set_clock_line((data & 0x02000000) ? ASSERT_LINE : CLEAR_LINE ); } } @@ -775,7 +776,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( rabbit ) PORT_START("INPUTS") - PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) // as per code at 4d932 + PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) // as per code at 4d932 PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_UNKNOWN ) // unlabeled in input test PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_START2 ) diff --git a/src/mame/drivers/rbmk.c b/src/mame/drivers/rbmk.c index 80ad30885bb..7dfecd075f4 100644 --- a/src/mame/drivers/rbmk.c +++ b/src/mame/drivers/rbmk.c @@ -97,10 +97,11 @@ static WRITE16_DEVICE_HANDLER( eeprom_w ) //bad ? if( ACCESSING_BITS_0_7 ) { - eeprom_write_bit(device, data & 0x04); - eeprom_set_cs_line(device, (data & 0x01) ? CLEAR_LINE:ASSERT_LINE ); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x04); + eeprom->set_cs_line((data & 0x01) ? CLEAR_LINE:ASSERT_LINE ); - eeprom_set_clock_line(device, (data & 0x02) ? ASSERT_LINE : CLEAR_LINE ); + eeprom->set_clock_line((data & 0x02) ? ASSERT_LINE : CLEAR_LINE ); } } @@ -353,7 +354,7 @@ static INPUT_PORTS_START( rbmk ) PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START("IN4") /* 16bit */ PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) diff --git a/src/mame/drivers/rungun.c b/src/mame/drivers/rungun.c index a6f91f5d9ec..159b7fe0427 100644 --- a/src/mame/drivers/rungun.c +++ b/src/mame/drivers/rungun.c @@ -277,7 +277,7 @@ static INPUT_PORTS_START( rng ) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM ready (always 1) */ PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_LOW ) PORT_DIPNAME( 0x10, 0x00, "Monitors" ) @@ -297,9 +297,9 @@ static INPUT_PORTS_START( rng ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) PORT_START("P1") KONAMI8_B123_START(1) diff --git a/src/mame/drivers/saturn.c b/src/mame/drivers/saturn.c index c4fe371685b..102a4aed6e7 100644 --- a/src/mame/drivers/saturn.c +++ b/src/mame/drivers/saturn.c @@ -484,7 +484,7 @@ static UINT8 stv_SMPC_r8 (address_space *space, int offset) return_data = input_port_read(space->machine(), "DSW1"); if (offset == 0x77)//PDR2 read - return_data= (0xfe | eeprom_read_bit(space->machine().device("eeprom"))); + return_data= (0xfe | space->machine().device("eeprom")->read_bit()); // if (offset == 0x33) //country code // return_data = input_port_read(machine, "FAKE"); @@ -508,10 +508,10 @@ static void stv_SMPC_w8 (address_space *space, int offset, UINT8 data) if(offset == 0x75) { - eeprom_device *device = space->machine().device("eeprom"); - eeprom_set_clock_line(device, (data & 0x08) ? ASSERT_LINE : CLEAR_LINE); - eeprom_write_bit(device, data & 0x10); - eeprom_set_cs_line(device, (data & 0x04) ? CLEAR_LINE : ASSERT_LINE); + eeprom_device *eeprom = space->machine().device("eeprom"); + eeprom->set_clock_line((data & 0x08) ? ASSERT_LINE : CLEAR_LINE); + eeprom->write_bit(data & 0x10); + eeprom->set_cs_line((data & 0x04) ? CLEAR_LINE : ASSERT_LINE); // if (data & 0x01) diff --git a/src/mame/drivers/segas32.c b/src/mame/drivers/segas32.c index be20b90b6a1..b730b349fd5 100644 --- a/src/mame/drivers/segas32.c +++ b/src/mame/drivers/segas32.c @@ -673,10 +673,10 @@ static void common_io_chip_w(address_space *space, int which, offs_t offset, UIN if (which == 0) { - eeprom_device *device = space->machine().device("eeprom"); - eeprom_write_bit(device, data & 0x80); - eeprom_set_cs_line(device, (data & 0x20) ? CLEAR_LINE : ASSERT_LINE); - eeprom_set_clock_line(device, (data & 0x40) ? ASSERT_LINE : CLEAR_LINE); + eeprom_device *eeprom = space->machine().device("eeprom"); + eeprom->write_bit(data & 0x80); + eeprom->set_cs_line((data & 0x20) ? CLEAR_LINE : ASSERT_LINE); + eeprom->set_clock_line((data & 0x40) ? ASSERT_LINE : CLEAR_LINE); } /* coin_lockout_w(space->machine(), 1 + 2*which, data & 0x08); coin_lockout_w(space->machine(), 0 + 2*which, data & 0x04);*/ @@ -691,10 +691,10 @@ static void common_io_chip_w(address_space *space, int which, offs_t offset, UIN else { /* multi-32 EEPROM access */ - eeprom_device *device = space->machine().device("eeprom"); - eeprom_write_bit(device, data & 0x80); - eeprom_set_cs_line(device, (data & 0x20) ? CLEAR_LINE : ASSERT_LINE); - eeprom_set_clock_line(device, (data & 0x40) ? ASSERT_LINE : CLEAR_LINE); + eeprom_device *eeprom = space->machine().device("eeprom"); + eeprom->write_bit(data & 0x80); + eeprom->set_cs_line((data & 0x20) ? CLEAR_LINE : ASSERT_LINE); + eeprom->set_clock_line((data & 0x40) ? ASSERT_LINE : CLEAR_LINE); } break; @@ -1350,7 +1350,7 @@ static INPUT_PORTS_START( system32_generic ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE3 ) /* sometimes mirrors SERVICE1 */ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE4 ) /* tends to also work as a test switch */ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START("PORTG_A") PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1385,7 +1385,7 @@ static INPUT_PORTS_START( multi32_generic ) PORT_START("SERVICE34_B") PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START("PORTG_B") PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) diff --git a/src/mame/drivers/seibuspi.c b/src/mame/drivers/seibuspi.c index dc7e6e189c6..f1704a4964b 100644 --- a/src/mame/drivers/seibuspi.c +++ b/src/mame/drivers/seibuspi.c @@ -878,9 +878,11 @@ static WRITE32_DEVICE_HANDLER( eeprom_w ) // tile banks if( ACCESSING_BITS_16_23 ) { rf2_set_layer_banks(device->machine(), data >> 16); - eeprom_write_bit(device, (data & 0x800000) ? 1 : 0); - eeprom_set_clock_line(device, (data & 0x400000) ? ASSERT_LINE : CLEAR_LINE); - eeprom_set_cs_line(device, (data & 0x200000) ? CLEAR_LINE : ASSERT_LINE); + + eeprom_device *eeprom = downcast(device); + eeprom->write_bit((data & 0x800000) ? 1 : 0); + eeprom->set_clock_line((data & 0x400000) ? ASSERT_LINE : CLEAR_LINE); + eeprom->set_cs_line((data & 0x200000) ? CLEAR_LINE : ASSERT_LINE); } // oki banking @@ -1113,9 +1115,10 @@ static void irqhandler(device_t *device, int state) static WRITE32_DEVICE_HANDLER(sys386f2_eeprom_w) { - eeprom_write_bit(device, (data & 0x80) ? 1 : 0); - eeprom_set_clock_line(device, (data & 0x40) ? ASSERT_LINE : CLEAR_LINE); - eeprom_set_cs_line(device, (data & 0x20) ? CLEAR_LINE : ASSERT_LINE); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit((data & 0x80) ? 1 : 0); + eeprom->set_clock_line((data & 0x40) ? ASSERT_LINE : CLEAR_LINE); + eeprom->set_cs_line((data & 0x20) ? CLEAR_LINE : ASSERT_LINE); } static const ymf271_interface ymf271_config = @@ -1204,7 +1207,7 @@ static INPUT_PORTS_START( spi_2button ) PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_START2 ) PORT_SERVICE_NO_TOGGLE( 0x00000004, IP_ACTIVE_LOW) /* Test Button */ PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service Coin") PORT_CODE(KEYCODE_7) - PORT_BIT( 0x00000040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x00000040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x000000b0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1256,7 +1259,7 @@ static INPUT_PORTS_START( seibu386_2button ) PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service Coin") PORT_CODE(KEYCODE_7) PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x00000040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x00000040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1405,7 +1408,7 @@ static INPUT_PORTS_START( spi_ejsakura ) PORT_START("SYSTEM") PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x00004000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x00004000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0xffffbf3f, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END diff --git a/src/mame/drivers/seta2.c b/src/mame/drivers/seta2.c index 4005fcb11b3..1e60ca8ade1 100644 --- a/src/mame/drivers/seta2.c +++ b/src/mame/drivers/seta2.c @@ -173,14 +173,16 @@ ADDRESS_MAP_END static READ16_DEVICE_HANDLER( gundamex_eeprom_r ) { - return ((eeprom_read_bit(device) & 1)) << 3; + eeprom_device *eeprom = downcast(device); + return ((eeprom->read_bit() & 1)) << 3; } static WRITE16_DEVICE_HANDLER( gundamex_eeprom_w ) { - eeprom_set_clock_line(device, (data & 0x2) ? ASSERT_LINE : CLEAR_LINE); - eeprom_write_bit(device, data & 0x1); - eeprom_set_cs_line(device, (data & 0x4) ? CLEAR_LINE : ASSERT_LINE); + eeprom_device *eeprom = downcast(device); + eeprom->set_clock_line((data & 0x2) ? ASSERT_LINE : CLEAR_LINE); + eeprom->write_bit(data & 0x1); + eeprom->set_cs_line((data & 0x4) ? CLEAR_LINE : ASSERT_LINE); } static ADDRESS_MAP_START( gundamex_map, AS_PROGRAM, 16 ) diff --git a/src/mame/drivers/sigmab98.c b/src/mame/drivers/sigmab98.c index 64ccd90cb56..611c0d0313d 100644 --- a/src/mame/drivers/sigmab98.c +++ b/src/mame/drivers/sigmab98.c @@ -386,14 +386,15 @@ static WRITE8_DEVICE_HANDLER( eeprom_w ) { sigmab98_state *state = device->machine().driver_data(); // latch the bit - eeprom_write_bit(device, data & 0x40); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x40); // reset line asserted: reset. // if ((state->m_c0 ^ data) & 0x20) - eeprom_set_cs_line(device, (data & 0x20) ? CLEAR_LINE : ASSERT_LINE); + eeprom->set_cs_line((data & 0x20) ? CLEAR_LINE : ASSERT_LINE); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line(device, (data & 0x10) ? ASSERT_LINE : CLEAR_LINE); + eeprom->set_clock_line((data & 0x10) ? ASSERT_LINE : CLEAR_LINE); state->m_c0 = data; show_outputs(state); @@ -591,19 +592,21 @@ static READ8_HANDLER( animalc_rambank_r ) static READ8_DEVICE_HANDLER( sammymdl_eeprom_r ) { - return eeprom_read_bit(device) ? 0x80 : 0; + eeprom_device *eeprom = downcast(device); + return eeprom->read_bit() ? 0x80 : 0; } static WRITE8_DEVICE_HANDLER( sammymdl_eeprom_w ) { // latch the bit - eeprom_write_bit(device, data & 0x40); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x40); // reset line asserted: reset. - eeprom_set_cs_line(device, (data & 0x20) ? CLEAR_LINE : ASSERT_LINE); + eeprom->set_cs_line((data & 0x20) ? CLEAR_LINE : ASSERT_LINE); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line(device, (data & 0x10) ? ASSERT_LINE : CLEAR_LINE); + eeprom->set_clock_line((data & 0x10) ? ASSERT_LINE : CLEAR_LINE); if (data & 0x8f) logerror("%s: unknown eeeprom bits written %02x\n", device->machine().describe_context(), data); @@ -1484,7 +1487,7 @@ static INPUT_PORTS_START( gegege ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5) // ? (coin error, pulses mask 4 of port c6) diff --git a/src/mame/drivers/simpl156.c b/src/mame/drivers/simpl156.c index 70db91c22bc..95f274b81b1 100644 --- a/src/mame/drivers/simpl156.c +++ b/src/mame/drivers/simpl156.c @@ -130,7 +130,7 @@ INPUT_PORTS_END static READ32_HANDLER( simpl156_inputs_read ) { simpl156_state *state = space->machine().driver_data(); - int eep = eeprom_read_bit(state->m_eeprom); + int eep = state->m_eeprom->read_bit(); UINT32 returndata = input_port_read(space->machine(), "IN0") ^ 0xffff0000; returndata ^= ((eep << 8)); @@ -176,9 +176,9 @@ static WRITE32_HANDLER( simpl156_eeprom_w ) state->m_okimusic->set_bank_base(0x40000 * (data & 0x7)); - eeprom_set_clock_line(state->m_eeprom, BIT(data, 5) ? ASSERT_LINE : CLEAR_LINE); - eeprom_write_bit(state->m_eeprom, BIT(data, 4)); - eeprom_set_cs_line(state->m_eeprom, BIT(data, 6) ? CLEAR_LINE : ASSERT_LINE); + state->m_eeprom->set_clock_line(BIT(data, 5) ? ASSERT_LINE : CLEAR_LINE); + state->m_eeprom->write_bit(BIT(data, 4)); + state->m_eeprom->set_cs_line(BIT(data, 6) ? CLEAR_LINE : ASSERT_LINE); } diff --git a/src/mame/drivers/simpsons.c b/src/mame/drivers/simpsons.c index 562d0c1bbfc..37e390cc4ff 100644 --- a/src/mame/drivers/simpsons.c +++ b/src/mame/drivers/simpsons.c @@ -174,14 +174,14 @@ static INPUT_PORTS_START( simpsons ) PORT_START("TEST") PORT_SERVICE_NO_TOGGLE( 0x01, IP_ACTIVE_LOW ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // eeprom ack PORT_BIT( 0xce, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) INPUT_PORTS_END static INPUT_PORTS_START( simpsn2p ) @@ -209,14 +209,14 @@ static INPUT_PORTS_START( simpsn2p ) PORT_START("TEST") PORT_SERVICE_NO_TOGGLE( 0x01, IP_ACTIVE_LOW ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // eeprom ack PORT_BIT( 0xce, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) INPUT_PORTS_END diff --git a/src/mame/drivers/spool99.c b/src/mame/drivers/spool99.c index b677cba1350..ccd80f8dbab 100644 --- a/src/mame/drivers/spool99.c +++ b/src/mame/drivers/spool99.c @@ -175,7 +175,7 @@ static READ8_HANDLER( spool99_io_r ) case 0xafe4: return input_port_read(space->machine(),"SERVICE2");//attract mode // case 0xafe5: return 1; // case 0xafe6: return 1; - case 0xafe7: return eeprom_read_bit(space->machine().device("eeprom")); + case 0xafe7: return space->machine().device("eeprom")->read_bit(); case 0xaff8: return space->machine().device("oki")->read(*space,0); } } @@ -188,19 +188,22 @@ static READ8_HANDLER( spool99_io_r ) static WRITE8_DEVICE_HANDLER( eeprom_resetline_w ) { // reset line asserted: reset. - eeprom_set_cs_line(device, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE ); + eeprom_device *eeprom = downcast(device); + eeprom->set_cs_line((data & 0x01) ? CLEAR_LINE : ASSERT_LINE ); } static WRITE8_DEVICE_HANDLER( eeprom_clockline_w ) { // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line(device, (data & 0x01) ? ASSERT_LINE : CLEAR_LINE ); + eeprom_device *eeprom = downcast(device); + eeprom->set_clock_line((data & 0x01) ? ASSERT_LINE : CLEAR_LINE ); } static WRITE8_DEVICE_HANDLER( eeprom_dataline_w ) { // latch the bit - eeprom_write_bit(device, data & 0x01); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x01); } static ADDRESS_MAP_START( spool99_map, AS_PROGRAM, 8 ) @@ -240,7 +243,7 @@ static READ8_HANDLER( vcarn_io_r ) case 0xa7a2: return input_port_read(space->machine(),"START"); case 0xa7a3: return input_port_read(space->machine(),"BET");//system 2 - case 0xa7a7: return eeprom_read_bit(space->machine().device("eeprom")); + case 0xa7a7: return space->machine().device("eeprom")->read_bit(); } } diff --git a/src/mame/drivers/ssv.c b/src/mame/drivers/ssv.c index 40884dea74f..c2d6c6602e8 100644 --- a/src/mame/drivers/ssv.c +++ b/src/mame/drivers/ssv.c @@ -463,7 +463,8 @@ static READ16_DEVICE_HANDLER( gdfs_eeprom_r ) ssv_state *state = device->machine().driver_data(); static const char *const gunnames[] = { "GUNX1", "GUNY1", "GUNX2", "GUNY2" }; - return (((state->m_gdfs_lightgun_select & 1) ? 0 : 0xff) ^ input_port_read(device->machine(), gunnames[state->m_gdfs_lightgun_select])) | (eeprom_read_bit(device) << 8); + eeprom_device *eeprom = downcast(device); + return (((state->m_gdfs_lightgun_select & 1) ? 0 : 0xff) ^ input_port_read(device->machine(), gunnames[state->m_gdfs_lightgun_select])) | (eeprom->read_bit() << 8); } static WRITE16_DEVICE_HANDLER( gdfs_eeprom_w ) @@ -479,13 +480,14 @@ static WRITE16_DEVICE_HANDLER( gdfs_eeprom_w ) // data & 0x0001 ? // latch the bit - eeprom_write_bit(device, data & 0x4000); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x4000); // reset line asserted: reset. - eeprom_set_cs_line(device, (data & 0x1000) ? CLEAR_LINE : ASSERT_LINE ); + eeprom->set_cs_line((data & 0x1000) ? CLEAR_LINE : ASSERT_LINE ); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line(device, (data & 0x2000) ? ASSERT_LINE : CLEAR_LINE ); + eeprom->set_clock_line((data & 0x2000) ? ASSERT_LINE : CLEAR_LINE ); if (!(state->m_gdfs_eeprom_old & 0x0800) && (data & 0x0800)) // rising clock state->m_gdfs_lightgun_select = (data & 0x0300) >> 8; diff --git a/src/mame/drivers/stlforce.c b/src/mame/drivers/stlforce.c index 4cc56e0c49e..bcbee8dcc2c 100644 --- a/src/mame/drivers/stlforce.c +++ b/src/mame/drivers/stlforce.c @@ -78,9 +78,10 @@ static WRITE16_DEVICE_HANDLER( eeprom_w ) { if( ACCESSING_BITS_0_7 ) { - eeprom_write_bit(device, data & 0x01); - eeprom_set_cs_line(device, (data & 0x02) ? CLEAR_LINE : ASSERT_LINE ); - eeprom_set_clock_line(device, (data & 0x04) ? ASSERT_LINE : CLEAR_LINE ); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x01); + eeprom->set_cs_line((data & 0x02) ? CLEAR_LINE : ASSERT_LINE ); + eeprom->set_clock_line((data & 0x04) ? ASSERT_LINE : CLEAR_LINE ); } } @@ -138,7 +139,7 @@ static INPUT_PORTS_START( stlforce ) PORT_SERVICE_NO_TOGGLE( 0x0008, IP_ACTIVE_LOW ) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_VBLANK ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) /* eeprom */ + PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) /* eeprom */ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END diff --git a/src/mame/drivers/superchs.c b/src/mame/drivers/superchs.c index 0dae463b960..529730e94bf 100644 --- a/src/mame/drivers/superchs.c +++ b/src/mame/drivers/superchs.c @@ -145,10 +145,10 @@ static WRITE32_HANDLER( superchs_input_w ) if (ACCESSING_BITS_0_7) { - device_t *device = space->machine().device("eeprom"); - eeprom_set_clock_line(device, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE); - eeprom_write_bit(device, data & 0x40); - eeprom_set_cs_line(device, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); + eeprom_device *eeprom = space->machine().device("eeprom"); + eeprom->set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE); + eeprom->write_bit(data & 0x40); + eeprom->set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE); return; } @@ -259,7 +259,7 @@ static INPUT_PORTS_START( superchs ) PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) /* reserved for EEROM */ + PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) /* reserved for EEROM */ PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) PORT_NAME("Seat Center") /* seat center (cockpit only) */ PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNKNOWN ) diff --git a/src/mame/drivers/taito_b.c b/src/mame/drivers/taito_b.c index 31425dfb0c0..f520cf232bc 100644 --- a/src/mame/drivers/taito_b.c +++ b/src/mame/drivers/taito_b.c @@ -1371,7 +1371,7 @@ static INPUT_PORTS_START( pbobble ) /* Missing P3&4 controls ! */ PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) /*ok*/ PORT_START("COIN") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -1431,9 +1431,9 @@ static INPUT_PORTS_START( pbobble ) /* Missing P3&4 controls ! */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END static INPUT_PORTS_START( spacedxo ) @@ -1533,7 +1533,7 @@ static INPUT_PORTS_START( qzshowby ) PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) /*ok*/ PORT_START("COIN") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -1593,9 +1593,9 @@ static INPUT_PORTS_START( qzshowby ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END static INPUT_PORTS_START( viofight ) diff --git a/src/mame/drivers/taito_f3.c b/src/mame/drivers/taito_f3.c index 893d83bf15c..30b655dab6d 100644 --- a/src/mame/drivers/taito_f3.c +++ b/src/mame/drivers/taito_f3.c @@ -291,7 +291,7 @@ static INPUT_PORTS_START( f3 ) /* These are not read directly, but through PORT_CUSTOMs above */ PORT_START("EEPROMIN") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) /* Another service mode */ @@ -307,9 +307,9 @@ static INPUT_PORTS_START( f3 ) PORT_BIT( 0xfff, 0x000, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(25) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END static INPUT_PORTS_START( kn ) diff --git a/src/mame/drivers/taito_z.c b/src/mame/drivers/taito_z.c index 3a830dec0c5..1b38daadd80 100644 --- a/src/mame/drivers/taito_z.c +++ b/src/mame/drivers/taito_z.c @@ -1256,7 +1256,7 @@ static READ16_HANDLER( spacegun_input_bypass_r ) switch (offset) { case 0x03: - return eeprom_read_bit(state->m_eeprom) << 7; + return state->m_eeprom->read_bit() << 7; default: return tc0220ioc_r(state->m_tc0220ioc, offset); /* might be a 510NIO ! */ @@ -2638,9 +2638,9 @@ static INPUT_PORTS_START( spacegun ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) PORT_START("STICKX1") PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(13) PORT_CENTERDELTA(0) PORT_REVERSE PORT_PLAYER(1) @@ -2971,7 +2971,7 @@ static MACHINE_START( bshark ) state->m_maincpu = machine.device("maincpu"); state->m_subcpu = machine.device("sub"); state->m_audiocpu = machine.device("audiocpu"); - state->m_eeprom = machine.device("eeprom"); + state->m_eeprom = machine.device("eeprom"); state->m_tc0100scn = machine.device("tc0100scn"); state->m_tc0150rod = machine.device("tc0150rod"); state->m_tc0480scp = machine.device("tc0480scp"); diff --git a/src/mame/drivers/taitojc.c b/src/mame/drivers/taitojc.c index 24c4583aadf..1e98c418e6c 100644 --- a/src/mame/drivers/taitojc.c +++ b/src/mame/drivers/taitojc.c @@ -1082,7 +1082,7 @@ static INPUT_PORTS_START( taitojc ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE1 ) //PORT_SERVICE(0x02, 0x00) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START("START") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) @@ -1108,9 +1108,9 @@ static INPUT_PORTS_START( taitojc ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END #endif @@ -1119,7 +1119,7 @@ static INPUT_PORTS_START( dendeg ) PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START("START") PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1128,9 +1128,9 @@ static INPUT_PORTS_START( dendeg ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) PORT_START("UNUSED") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON7 ) // Horn @@ -1155,7 +1155,7 @@ static INPUT_PORTS_START( landgear ) PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START("START") PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1164,9 +1164,9 @@ static INPUT_PORTS_START( landgear ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) PORT_START("UNUSED") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) // View button @@ -1190,7 +1190,7 @@ static INPUT_PORTS_START( sidebs ) PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START("START") PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1201,9 +1201,9 @@ static INPUT_PORTS_START( sidebs ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) PORT_START("UNUSED") PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1230,7 +1230,7 @@ static INPUT_PORTS_START( dangcurv ) PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_START("START") PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1241,9 +1241,9 @@ static INPUT_PORTS_START( dangcurv ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) PORT_START("UNUSED") PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED ) diff --git a/src/mame/drivers/tecmosys.c b/src/mame/drivers/tecmosys.c index 9014f4c130c..dcb6418fef1 100644 --- a/src/mame/drivers/tecmosys.c +++ b/src/mame/drivers/tecmosys.c @@ -345,7 +345,8 @@ static READ16_HANDLER( unk880000_r ) static READ16_DEVICE_HANDLER( eeprom_r ) { - return ((eeprom_read_bit(device) & 0x01) << 11); + eeprom_device *eeprom = downcast(device); + return ((eeprom->read_bit() & 0x01) << 11); } @@ -353,9 +354,10 @@ static WRITE16_DEVICE_HANDLER( eeprom_w ) { if ( ACCESSING_BITS_8_15 ) { - eeprom_write_bit(device, data & 0x0800); - eeprom_set_cs_line(device, (data & 0x0200) ? CLEAR_LINE : ASSERT_LINE ); - eeprom_set_clock_line(device, (data & 0x0400) ? CLEAR_LINE: ASSERT_LINE ); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x0800); + eeprom->set_cs_line((data & 0x0200) ? CLEAR_LINE : ASSERT_LINE ); + eeprom->set_clock_line((data & 0x0400) ? CLEAR_LINE: ASSERT_LINE ); } } diff --git a/src/mame/drivers/tmaster.c b/src/mame/drivers/tmaster.c index f00a31f00b0..839808a5c71 100644 --- a/src/mame/drivers/tmaster.c +++ b/src/mame/drivers/tmaster.c @@ -567,9 +567,9 @@ static const char *const galgames_eeprom_names[5] = { GALGAMES_EEPROM_BIOS, GALG static READ16_HANDLER( galgames_eeprom_r ) { tmaster_state *state = space->machine().driver_data(); - device_t *eeprom = space->machine().device(galgames_eeprom_names[state->m_galgames_cart]); + eeprom_device *eeprom = space->machine().device(galgames_eeprom_names[state->m_galgames_cart]); - return eeprom_read_bit(eeprom) ? 0x80 : 0x00; + return eeprom->read_bit() ? 0x80 : 0x00; } static WRITE16_HANDLER( galgames_eeprom_w ) @@ -580,13 +580,13 @@ static WRITE16_HANDLER( galgames_eeprom_w ) if ( ACCESSING_BITS_0_7 ) { - device_t *eeprom = space->machine().device(galgames_eeprom_names[state->m_galgames_cart]); + eeprom_device *eeprom = space->machine().device(galgames_eeprom_names[state->m_galgames_cart]); // latch the bit - eeprom_write_bit(eeprom, data & 0x0001); + eeprom->write_bit(data & 0x0001); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line(eeprom, (data & 0x0002) ? ASSERT_LINE : CLEAR_LINE ); + eeprom->set_clock_line((data & 0x0002) ? ASSERT_LINE : CLEAR_LINE ); } } @@ -656,7 +656,7 @@ static WRITE16_HANDLER( galgames_cart_sel_w ) { case 0x07: // 7 resets the eeprom for (i = 0; i < 5; i++) - eeprom_set_cs_line(space->machine().device(galgames_eeprom_names[i]), ASSERT_LINE); + space->machine().device(galgames_eeprom_names[i])->set_cs_line(ASSERT_LINE); break; case 0x00: @@ -664,12 +664,12 @@ static WRITE16_HANDLER( galgames_cart_sel_w ) case 0x02: case 0x03: case 0x04: - eeprom_set_cs_line(space->machine().device(galgames_eeprom_names[data & 0xff]), CLEAR_LINE); + space->machine().device(galgames_eeprom_names[data & 0xff])->set_cs_line(CLEAR_LINE); galgames_update_rombank(space->machine(), data & 0xff); break; default: - eeprom_set_cs_line(space->machine().device(galgames_eeprom_names[0]), CLEAR_LINE); + space->machine().device(galgames_eeprom_names[0])->set_cs_line(CLEAR_LINE); galgames_update_rombank(space->machine(), 0); logerror("%06x: unknown cart sel = %04x\n", cpu_get_pc(&space->device()), data); break; diff --git a/src/mame/drivers/tmmjprd.c b/src/mame/drivers/tmmjprd.c index db0792d6186..708aec779f9 100644 --- a/src/mame/drivers/tmmjprd.c +++ b/src/mame/drivers/tmmjprd.c @@ -491,13 +491,14 @@ static WRITE32_DEVICE_HANDLER( tmmjprd_eeprom_write ) if (mem_mask == 0xff000000) { // latch the bit - eeprom_write_bit(device, data & 0x01000000); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x01000000); // reset line asserted: reset. - eeprom_set_cs_line(device, (data & 0x04000000) ? CLEAR_LINE : ASSERT_LINE ); + eeprom->set_cs_line((data & 0x04000000) ? CLEAR_LINE : ASSERT_LINE ); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line(device, (data & 0x02000000) ? ASSERT_LINE : CLEAR_LINE ); + eeprom->set_clock_line((data & 0x02000000) ? ASSERT_LINE : CLEAR_LINE ); } } @@ -528,7 +529,7 @@ static INPUT_PORTS_START( tmmjprd ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_NAME("Right Screen Coin B") // might actually be service 1 PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) // CHECK! + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) // CHECK! PORT_START("PL1_1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A ) PORT_PLAYER(1) diff --git a/src/mame/drivers/tmnt.c b/src/mame/drivers/tmnt.c index 4f7ba469087..ef4f2a7af15 100644 --- a/src/mame/drivers/tmnt.c +++ b/src/mame/drivers/tmnt.c @@ -1715,14 +1715,14 @@ static INPUT_PORTS_START( blswhstl ) KONAMI16_LSB( 2, IPT_UNKNOWN, IPT_UNKNOWN ) PORT_START("EEPROM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM status? - always 1 */ PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) INPUT_PORTS_END static INPUT_PORTS_START( glfgreat ) @@ -1811,7 +1811,7 @@ static INPUT_PORTS_START( ssriders ) PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("EEPROM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM status? - always 1 */ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* ?? TMNT2: OBJMPX */ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VBLANK ) /* ?? TMNT2: NVBLK */ @@ -1820,9 +1820,9 @@ static INPUT_PORTS_START( ssriders ) PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) INPUT_PORTS_END static INPUT_PORTS_START( ssridr4p ) @@ -1849,7 +1849,7 @@ static INPUT_PORTS_START( ssridr4p ) KONAMI16_LSB( 4, IPT_UNKNOWN, IPT_UNKNOWN ) PORT_START("EEPROM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM status? - always 1 */ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* ?? TMNT2: OBJMPX */ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VBLANK ) /* ?? TMNT2: NVBLK */ @@ -1858,9 +1858,9 @@ static INPUT_PORTS_START( ssridr4p ) PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) INPUT_PORTS_END /* Same as 'ssridr4p', but additional Start button for each player. @@ -1889,7 +1889,7 @@ static INPUT_PORTS_START( ssrid4ps ) KONAMI16_LSB( 4, IPT_UNKNOWN, IPT_START4 ) PORT_START("EEPROM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM status? - always 1 */ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* ?? TMNT2: OBJMPX */ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VBLANK ) /* ?? TMNT2: NVBLK */ @@ -1898,9 +1898,9 @@ static INPUT_PORTS_START( ssrid4ps ) PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) INPUT_PORTS_END /* Version for the bootleg, which has the service switch a little different */ @@ -1928,16 +1928,16 @@ static INPUT_PORTS_START( sunsetbl ) KONAMI16_LSB( 4, IPT_UNKNOWN, IPT_START4 ) PORT_START("EEPROM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM status? - always 1 */ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_LOW ) PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused? */ PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) INPUT_PORTS_END static INPUT_PORTS_START( qgakumon ) @@ -1978,7 +1978,7 @@ static INPUT_PORTS_START( qgakumon ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("EEPROM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM status? - always 1 */ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* ?? TMNT2: OBJMPX */ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VBLANK ) /* ?? TMNT2: NVBLK (needs to be ACTIVE_HIGH to avoid problems) */ @@ -1987,9 +1987,9 @@ static INPUT_PORTS_START( qgakumon ) PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) INPUT_PORTS_END static INPUT_PORTS_START( thndrx2 ) @@ -2006,7 +2006,7 @@ static INPUT_PORTS_START( thndrx2 ) PORT_START("P2/EEPROM") KONAMI16_LSB( 2, IPT_UNKNOWN, IPT_START2 ) - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM status? - always 1 */ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* VBLK?? */ @@ -2016,9 +2016,9 @@ static INPUT_PORTS_START( thndrx2 ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) INPUT_PORTS_END static INPUT_PORTS_START( prmrsocr ) @@ -2043,7 +2043,7 @@ static INPUT_PORTS_START( prmrsocr ) PORT_START("P2/EEPROM") KONAMI16_LSB( 2, IPT_UNKNOWN, IPT_START2 ) - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM status? - always 1 */ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -2053,9 +2053,9 @@ static INPUT_PORTS_START( prmrsocr ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) INPUT_PORTS_END diff --git a/src/mame/drivers/toaplan2.c b/src/mame/drivers/toaplan2.c index 347a785fcb6..f782ee215c6 100644 --- a/src/mame/drivers/toaplan2.c +++ b/src/mame/drivers/toaplan2.c @@ -1077,7 +1077,7 @@ static READ16_HANDLER( bbakraid_eeprom_r ) // ROM code. Failure to return the correct status incurrs a Sound Error. int data; - data = ((eeprom_read_bit(eeprom) & 0x01) << 4); + data = ((eeprom->read_bit() & 0x01) << 4); data |= ((state->m_z80_busreq >> 4) & 0x01); // Loop BUSRQ to BUSAK return data; @@ -2188,10 +2188,10 @@ static INPUT_PORTS_START( fixeight ) PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // Unknown/Unused PORT_START("EEPROM") - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) INPUT_PORTS_END @@ -2966,9 +2966,9 @@ static INPUT_PORTS_START( bbakraid ) PORT_DIPSETTING( 0x8000, DEF_STR( On ) ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) INPUT_PORTS_END diff --git a/src/mame/drivers/ultrsprt.c b/src/mame/drivers/ultrsprt.c index 7b17379f9fa..b04d4c7c89e 100644 --- a/src/mame/drivers/ultrsprt.c +++ b/src/mame/drivers/ultrsprt.c @@ -172,13 +172,13 @@ static INPUT_PORTS_START( ultrsprt ) PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_START2 ) PORT_START("SERVICE") - PORT_BIT( 0x02000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x02000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_SERVICE_NO_TOGGLE( 0x08000000, IP_ACTIVE_LOW ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01000000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x01000000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) PORT_START("STICKX1") PORT_BIT( 0xfff, 0x800, IPT_AD_STICK_X ) PORT_MINMAX(0x000,0xfff) PORT_SENSITIVITY(70) PORT_KEYDELTA(10) PORT_PLAYER(1) diff --git a/src/mame/drivers/undrfire.c b/src/mame/drivers/undrfire.c index 78a542d965b..bb367979423 100644 --- a/src/mame/drivers/undrfire.c +++ b/src/mame/drivers/undrfire.c @@ -290,10 +290,10 @@ static WRITE32_HANDLER( undrfire_input_w ) if (ACCESSING_BITS_0_7) { - device_t *device = space->machine().device("eeprom"); - eeprom_set_clock_line(device, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE); - eeprom_write_bit(device, data & 0x40); - eeprom_set_cs_line(device, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); + eeprom_device *eeprom = space->machine().device("eeprom"); + eeprom->set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE); + eeprom->write_bit(data & 0x40); + eeprom->set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE); return; } @@ -524,7 +524,7 @@ static INPUT_PORTS_START( undrfire ) PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) /* reserved for EEROM */ + PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) /* reserved for EEROM */ PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -592,7 +592,7 @@ static INPUT_PORTS_START( cbombers ) PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) /* reserved for EEROM */ + PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) /* reserved for EEROM */ PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNKNOWN ) diff --git a/src/mame/drivers/unico.c b/src/mame/drivers/unico.c index 2b69b66b5ff..b102233a0c2 100644 --- a/src/mame/drivers/unico.c +++ b/src/mame/drivers/unico.c @@ -204,13 +204,14 @@ static WRITE32_DEVICE_HANDLER( zeropnt2_eeprom_w ) if ( ACCESSING_BITS_24_31 ) { // latch the bit - eeprom_write_bit(device, data & 0x04000000); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x04000000); // reset line asserted: reset. - eeprom_set_cs_line(device, (data & 0x01000000) ? CLEAR_LINE : ASSERT_LINE); + eeprom->set_cs_line((data & 0x01000000) ? CLEAR_LINE : ASSERT_LINE); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line(device, (data & 0x02000000) ? ASSERT_LINE : CLEAR_LINE ); + eeprom->set_clock_line((data & 0x02000000) ? ASSERT_LINE : CLEAR_LINE ); } } @@ -507,7 +508,7 @@ static INPUT_PORTS_START( zeropnt2 ) PORT_BIT( 0x10000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x20000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) // EEPROM + PORT_BIT( 0x80000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) // EEPROM PORT_START("Y0") /* $800140.b */ PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_SENSITIVITY(35) PORT_KEYDELTA(15) PORT_PLAYER(2) diff --git a/src/mame/drivers/vamphalf.c b/src/mame/drivers/vamphalf.c index f84fce72dcc..f9752001b68 100644 --- a/src/mame/drivers/vamphalf.c +++ b/src/mame/drivers/vamphalf.c @@ -69,23 +69,28 @@ public: static READ16_DEVICE_HANDLER( eeprom_r ) { if(offset) - return eeprom_read_bit(device); + { + eeprom_device *eeprom = downcast(device); + return eeprom->read_bit(); + } else return 0; } static READ32_DEVICE_HANDLER( eeprom32_r ) { - return eeprom_read_bit(device); + eeprom_device *eeprom = downcast(device); + return eeprom->read_bit(); } static WRITE16_DEVICE_HANDLER( eeprom_w ) { if(offset) { - eeprom_write_bit(device, data & 0x01); - eeprom_set_cs_line(device, (data & 0x04) ? CLEAR_LINE : ASSERT_LINE ); - eeprom_set_clock_line(device, (data & 0x02) ? ASSERT_LINE : CLEAR_LINE ); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x01); + eeprom->set_cs_line((data & 0x04) ? CLEAR_LINE : ASSERT_LINE ); + eeprom->set_clock_line((data & 0x02) ? ASSERT_LINE : CLEAR_LINE ); // data & 8? } @@ -93,16 +98,18 @@ static WRITE16_DEVICE_HANDLER( eeprom_w ) static WRITE32_DEVICE_HANDLER( eeprom32_w ) { - eeprom_write_bit(device, data & 0x01); - eeprom_set_cs_line(device, (data & 0x04) ? CLEAR_LINE : ASSERT_LINE ); - eeprom_set_clock_line(device, (data & 0x02) ? ASSERT_LINE : CLEAR_LINE ); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x01); + eeprom->set_cs_line((data & 0x04) ? CLEAR_LINE : ASSERT_LINE ); + eeprom->set_clock_line((data & 0x02) ? ASSERT_LINE : CLEAR_LINE ); } static WRITE32_DEVICE_HANDLER( finalgdr_eeprom_w ) { - eeprom_write_bit(device, data & 0x4000); - eeprom_set_cs_line(device, (data & 0x1000) ? CLEAR_LINE : ASSERT_LINE ); - eeprom_set_clock_line(device, (data & 0x2000) ? ASSERT_LINE : CLEAR_LINE ); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x4000); + eeprom->set_cs_line((data & 0x1000) ? CLEAR_LINE : ASSERT_LINE ); + eeprom->set_clock_line((data & 0x2000) ? ASSERT_LINE : CLEAR_LINE ); } static WRITE16_HANDLER( flipscreen_w ) @@ -616,7 +623,7 @@ static INPUT_PORTS_START( aoh ) PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00000010, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) // eeprom bit + PORT_BIT( 0x00000010, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) // eeprom bit PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_UNKNOWN ) diff --git a/src/mame/drivers/vendetta.c b/src/mame/drivers/vendetta.c index 6aa5f397c73..fe3722166d2 100644 --- a/src/mame/drivers/vendetta.c +++ b/src/mame/drivers/vendetta.c @@ -325,16 +325,16 @@ static INPUT_PORTS_START( vendet4p ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("EEPROM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* EEPROM ready */ PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VBLANK ) /* not really vblank, object related. Its timed, otherwise sprites flicker */ PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) INPUT_PORTS_END static INPUT_PORTS_START( vendetta ) @@ -381,16 +381,16 @@ static INPUT_PORTS_START( esckids ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("EEPROM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* EEPROM ready */ PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VBLANK ) /* not really vblank, object related. Its timed, otherwise sprites flicker */ PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) INPUT_PORTS_END static INPUT_PORTS_START( esckidsj ) diff --git a/src/mame/drivers/xexex.c b/src/mame/drivers/xexex.c index 66863b1a215..1615674aa8f 100644 --- a/src/mame/drivers/xexex.c +++ b/src/mame/drivers/xexex.c @@ -401,16 +401,16 @@ static INPUT_PORTS_START( xexex ) KONAMI16_LSB(2, IPT_UNKNOWN, IPT_START2 ) PORT_START("EEPROM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM ready (always 1) */ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_LOW ) PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) INPUT_PORTS_END diff --git a/src/mame/drivers/xmen.c b/src/mame/drivers/xmen.c index 713ef7103a7..bd136761bf6 100644 --- a/src/mame/drivers/xmen.c +++ b/src/mame/drivers/xmen.c @@ -211,7 +211,7 @@ static INPUT_PORTS_START( xmen ) PORT_START("EEPROM") PORT_BIT( 0x003f, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused? */ - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* EEPROM status - always 1 */ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) @@ -222,9 +222,9 @@ static INPUT_PORTS_START( xmen ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused? */ PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END static INPUT_PORTS_START( xmen2p ) @@ -240,7 +240,7 @@ static INPUT_PORTS_START( xmen2p ) PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_BIT( 0x003c, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused? */ - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* EEPROM status - always 1 */ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) @@ -251,9 +251,9 @@ static INPUT_PORTS_START( xmen2p ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused? */ PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END static CUSTOM_INPUT( xmen_frame_r ) @@ -277,7 +277,7 @@ static INPUT_PORTS_START( xmen6p ) PORT_START("EEPROM") PORT_BIT( 0x003f, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused? */ - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) + PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* EEPROM status - always 1 */ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) @@ -289,9 +289,9 @@ static INPUT_PORTS_START( xmen6p ) PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(xmen_frame_r, NULL) /* screen indicator? */ PORT_START( "EEPROMOUT" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END diff --git a/src/mame/drivers/xorworld.c b/src/mame/drivers/xorworld.c index aebf790d8bd..9ea9b837e17 100644 --- a/src/mame/drivers/xorworld.c +++ b/src/mame/drivers/xorworld.c @@ -51,19 +51,22 @@ EEPROM chip: 93C46 static WRITE16_DEVICE_HANDLER( eeprom_chip_select_w ) { /* bit 0 is CS (active low) */ - eeprom_set_cs_line(device, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); + eeprom_device *eeprom = downcast(device); + eeprom->set_cs_line((data & 0x01) ? CLEAR_LINE : ASSERT_LINE); } static WRITE16_DEVICE_HANDLER( eeprom_serial_clock_w ) { /* bit 0 is SK (active high) */ - eeprom_set_clock_line(device, (data & 0x01) ? ASSERT_LINE : CLEAR_LINE); + eeprom_device *eeprom = downcast(device); + eeprom->set_clock_line((data & 0x01) ? ASSERT_LINE : CLEAR_LINE); } static WRITE16_DEVICE_HANDLER( eeprom_data_w ) { /* bit 0 is EEPROM data (DIN) */ - eeprom_write_bit(device, data & 0x01); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x01); } @@ -99,7 +102,7 @@ static INPUT_PORTS_START( xorworld ) PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eeprom_read_bit) /* used for accessing the NVRAM */ + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) /* used for accessing the NVRAM */ PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x60, DEF_STR( Normal ) ) diff --git a/src/mame/drivers/zr107.c b/src/mame/drivers/zr107.c index c2d882509ae..50c6403b813 100644 --- a/src/mame/drivers/zr107.c +++ b/src/mame/drivers/zr107.c @@ -534,12 +534,12 @@ static INPUT_PORTS_START( zr107 ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* PARAACK */ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("adc0838",adc083x_sars_read) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom",eeprom_read_bit) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom",eeprom_device,read_bit) PORT_START("EEPROMOUT") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) PORT_START("OUT4") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("adc0838", adc083x_cs_write) diff --git a/src/mame/includes/esd16.h b/src/mame/includes/esd16.h index 1caa222dafe..70f7d2b46dd 100644 --- a/src/mame/includes/esd16.h +++ b/src/mame/includes/esd16.h @@ -1,9 +1,11 @@ - /*************************************************************************** +/*************************************************************************** ESD 16 Bit Games ***************************************************************************/ +#include "machine/eeprom.h" + class esd16_state : public driver_device { public: @@ -31,7 +33,7 @@ public: /* devices */ device_t *m_audio_cpu; - device_t *m_eeprom; + eeprom_device *m_eeprom; }; diff --git a/src/mame/includes/othunder.h b/src/mame/includes/othunder.h index 33e18919cf8..d2f2952a7aa 100644 --- a/src/mame/includes/othunder.h +++ b/src/mame/includes/othunder.h @@ -4,6 +4,8 @@ *************************************************************************/ +#include "machine/eeprom.h" + struct othunder_tempsprite { int gfx; @@ -37,7 +39,7 @@ public: /* devices */ device_t *m_maincpu; device_t *m_audiocpu; - device_t *m_eeprom; + eeprom_device *m_eeprom; device_t *m_tc0220ioc; device_t *m_tc0100scn; device_t *m_tc0110pcr; diff --git a/src/mame/includes/playmark.h b/src/mame/includes/playmark.h index 490cdfc5000..add387adc19 100644 --- a/src/mame/includes/playmark.h +++ b/src/mame/includes/playmark.h @@ -1,4 +1,5 @@ #include "sound/okim6295.h" +#include "machine/eeprom.h" class playmark_state : public driver_device { @@ -46,7 +47,7 @@ public: /* devices */ okim6295_device *m_oki; - device_t *m_eeprom; + eeprom_device *m_eeprom; }; /*----------- defined in video/playmark.c -----------*/ diff --git a/src/mame/includes/taito_z.h b/src/mame/includes/taito_z.h index ef990e6cce4..834afa9cf3c 100644 --- a/src/mame/includes/taito_z.h +++ b/src/mame/includes/taito_z.h @@ -5,6 +5,8 @@ *************************************************************************/ +#include "machine/eeprom.h" + class taitoz_state : public driver_device { public: @@ -35,7 +37,7 @@ public: device_t *m_maincpu; device_t *m_audiocpu; device_t *m_subcpu; - device_t *m_eeprom; + eeprom_device *m_eeprom; device_t *m_tc0480scp; device_t *m_tc0150rod; device_t *m_tc0100scn; diff --git a/src/mame/machine/decoprot.c b/src/mame/machine/decoprot.c index 2e89510fbb4..17a57677a78 100644 --- a/src/mame/machine/decoprot.c +++ b/src/mame/machine/decoprot.c @@ -1311,7 +1311,7 @@ static READ16_HANDLER( deco16_146_core_prot_r ) // case 0x582: return input_port_read(space->machine(), "IN0"); /* IN0 */ // case 0x672: return input_port_read(space->machine(), "IN1"); /* IN1 */ -// case 0x04c: return eeprom_read_bit(space->machine().device("eeprom")); +// case 0x04c: return space->machine().device("eeprom")->read_bit(); case 0x468: val=DECO_PORT(0x570); @@ -1660,7 +1660,7 @@ READ32_HANDLER( deco16_146_fghthist_prot_r ) { case 0x582: return (input_port_read(space->machine(), "IN0")<<16) | 0xffff; /* IN0 */ case 0x672: return (input_port_read(space->machine(), "IN1")<<16) | 0xffff; /* IN1 */ - case 0x04c: return (eeprom_read_bit(space->machine().device("eeprom"))<<16) | 0xffff; + case 0x04c: return (space->machine().device("eeprom")->read_bit()<<16) | 0xffff; } /* Handle 'one shots' - writing data to an address, then immediately reading it back */ diff --git a/src/mame/machine/gaelco2.c b/src/mame/machine/gaelco2.c index d23707cf88a..59b20c73c6d 100644 --- a/src/mame/machine/gaelco2.c +++ b/src/mame/machine/gaelco2.c @@ -271,19 +271,22 @@ WRITE16_HANDLER( wrally2_adc_cs ) WRITE16_DEVICE_HANDLER( gaelco2_eeprom_cs_w ) { /* bit 0 is CS (active low) */ - eeprom_set_cs_line(device, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); + eeprom_device *eeprom = downcast(device); + eeprom->set_cs_line((data & 0x01) ? CLEAR_LINE : ASSERT_LINE); } WRITE16_DEVICE_HANDLER( gaelco2_eeprom_sk_w ) { /* bit 0 is SK (active high) */ - eeprom_set_clock_line(device, (data & 0x01) ? ASSERT_LINE : CLEAR_LINE); + eeprom_device *eeprom = downcast(device); + eeprom->set_clock_line((data & 0x01) ? ASSERT_LINE : CLEAR_LINE); } WRITE16_DEVICE_HANDLER( gaelco2_eeprom_data_w ) { /* bit 0 is EEPROM data (DIN) */ - eeprom_write_bit(device, data & 0x01); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit(data & 0x01); } /*************************************************************************** diff --git a/src/mame/machine/leland.c b/src/mame/machine/leland.c index dab4c0b20c0..474d5949e52 100644 --- a/src/mame/machine/leland.c +++ b/src/mame/machine/leland.c @@ -841,9 +841,10 @@ WRITE8_DEVICE_HANDLER( ataxx_eeprom_w ) { if (LOG_EEPROM) logerror("%s:EE write %d%d%d\n", device->machine().describe_context(), (data >> 6) & 1, (data >> 5) & 1, (data >> 4) & 1); - eeprom_write_bit (device, (data & 0x10) >> 4); - eeprom_set_clock_line(device, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE); - eeprom_set_cs_line (device, (~data & 0x40) ? ASSERT_LINE : CLEAR_LINE); + eeprom_device *eeprom = downcast(device); + eeprom->write_bit ((data & 0x10) >> 4); + eeprom->set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE); + eeprom->set_cs_line ((~data & 0x40) ? ASSERT_LINE : CLEAR_LINE); } @@ -1140,7 +1141,7 @@ READ8_HANDLER( leland_master_input_r ) WRITE8_HANDLER( leland_master_output_w ) { leland_state *state = space->machine().driver_data(); - device_t *eeprom; + eeprom_device *eeprom; switch (offset) { @@ -1150,12 +1151,12 @@ WRITE8_HANDLER( leland_master_output_w ) cputag_set_input_line(space->machine(), "slave", INPUT_LINE_NMI, (data & 0x04) ? CLEAR_LINE : ASSERT_LINE); cputag_set_input_line(space->machine(), "slave", 0, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE); - eeprom = space->machine().device("eeprom"); + eeprom = space->machine().device("eeprom"); if (LOG_EEPROM) logerror("%04X:EE write %d%d%d\n", cpu_get_pc(&space->device()), (data >> 6) & 1, (data >> 5) & 1, (data >> 4) & 1); - eeprom_write_bit (eeprom, (data & 0x10) >> 4); - eeprom_set_clock_line(eeprom, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE); - eeprom_set_cs_line (eeprom, (~data & 0x40) ? ASSERT_LINE : CLEAR_LINE); + eeprom->write_bit ((data & 0x10) >> 4); + eeprom->set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE); + eeprom->set_cs_line ((~data & 0x40) ? ASSERT_LINE : CLEAR_LINE); break; case 0x0a: /* /OGIA */