Removed legacy trampolines from eeprom_device, taking

advantage of new input port support for delegates.
This commit is contained in:
Aaron Giles 2011-05-12 04:05:31 +00:00
parent b56339a9a0
commit 8afce7956a
107 changed files with 803 additions and 738 deletions

View File

@ -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 */

View File

@ -313,12 +313,7 @@ void eeprom_device::nvram_write(emu_file &file)
// READ/WRITE HANDLERS
//**************************************************************************
WRITE_LINE_DEVICE_HANDLER( eeprom_write_bit )
{
downcast<eeprom_device *>(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<eeprom_device *>(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<eeprom_device *>(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<eeprom_device *>(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))

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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")

View File

@ -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

View File

@ -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
/***************************************************************************

View File

@ -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 */

View File

@ -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<eeprom_device *>(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<backfire_state>();
// 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<backfire_state>();
// 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<eeprom_device *>(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_device>("eeprom");
}
UINT16 backfire_pri_callback(UINT16 x)

View File

@ -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<eeprom_device *>(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<eeprom_device *>(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<eeprom_device *>(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<eeprom_device *>(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<eeprom_device *>(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<eeprom_device *>(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<eeprom_device *>(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" )

View File

@ -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

View File

@ -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
/*

View File

@ -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 */

View File

@ -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<eeprom_device *>(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

View File

@ -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

View File

@ -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

View File

@ -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_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_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_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<eeprom_device *>(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<eeprom_device *>(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_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_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_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) */
}

View File

@ -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<eeprom_device *>(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 )

View File

@ -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<eeprom_device *>(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<eeprom_device *>(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)

View File

@ -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 )

View File

@ -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 )

View File

@ -118,7 +118,7 @@ static READ16_HANDLER( esd_eeprom_r )
esd16_state *state = space->machine().driver_data<esd16_state>();
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_device>("eeprom");
state->save_item(NAME(state->m_tilemap0_color));
}

View File

@ -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 )

View File

@ -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<eeprom_device *>(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<eeprom_device *>(device);
return (~(eeprom->read_bit()<<1) & 2);
}
static const ppi8255_interface ppi0intf =

View File

@ -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

View File

@ -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

View File

@ -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<eeprom_device *>(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<eeprom_device *>(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<eeprom_device *>(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<eeprom_device *>(device);
eeprom->set_cs_line((data & 0x01) ? CLEAR_LINE : ASSERT_LINE);
}
}

View File

@ -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_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 )

View File

@ -38,7 +38,8 @@ To Do:
static READ16_DEVICE_HANDLER(galpani2_eeprom_r)
{
galpani2_state *state = device->machine().driver_data<galpani2_state>();
return (state->m_eeprom_word & ~1) | (eeprom_read_bit(device) & 1);
eeprom_device *eeprom = downcast<eeprom_device *>(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<eeprom_device *>(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 );
}
}

View File

@ -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 )

View File

@ -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 )

View File

@ -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_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_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:

View File

@ -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_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)

View File

@ -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_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 =

View File

@ -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)

View File

@ -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_device>("eeprom")->read_bit();
case 0x2e: return space->machine().device<eeprom_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_device>("eeprom")->set_cs_line((data & 1) ? CLEAR_LINE : ASSERT_LINE ); break;
case 0x52: space->machine().device<eeprom_device>("eeprom")->set_clock_line((data & 1) ? ASSERT_LINE : CLEAR_LINE ); break;
case 0x54: space->machine().device<eeprom_device>("eeprom")->write_bit(data & 1); break;
// case 0x5a: space->machine().device<eeprom_device>("eeprom")->set_cs_line((data & 1) ? CLEAR_LINE : ASSERT_LINE ); break;
// case 0x5c: space->machine().device<eeprom_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_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_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_device>("eeprom")->set_cs_line((data & 1) ? CLEAR_LINE : ASSERT_LINE );
}
#endif
}

View File

@ -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_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_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_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_device>("eeprom")->read_bit();
joybuts_result |= (input_port_read(space->machine(), "CONFIG") & 0x10);
return (joystick_result << 16) | joybuts_result;

View File

@ -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_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 */

View File

@ -451,7 +451,7 @@ static READ16_HANDLER( kickgoal_eeprom_r )
kickgoal_state *state = space->machine().driver_data<kickgoal_state>();
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;
}
}

View File

@ -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 )

View File

@ -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<eeprom_device *>(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 )

View File

@ -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

View File

@ -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 )

View File

@ -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 )

View File

@ -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)

View File

@ -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

View File

@ -145,7 +145,7 @@ static WRITE8_DEVICE_HANDLER(fake2_w)
static WRITE8_DEVICE_HANDLER( lordgun_eeprom_w )
{
lordgun_state *state = device->machine().driver_data<lordgun_state>();
device_t *eeprom = device->machine().device("eeprom");
eeprom_device *eeprom = device->machine().device<eeprom_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<lordgun_state>();
device_t *eeprom = device->machine().device("eeprom");
eeprom_device *eeprom = device->machine().device<eeprom_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 )

View File

@ -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<eeprom_device *>(device);
return eeprom->read_bit() & 1;
}
static WRITE16_DEVICE_HANDLER( gakusai_eeprom_w )
{
if (ACCESSING_BITS_0_7)
{
eeprom_device *eeprom = downcast<eeprom_device *>(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<eeprom_device *>(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<eeprom_device *>(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<eeprom_device *>(device);
eeprom->set_cs_line(BIT(data, 0) ? CLEAR_LINE : ASSERT_LINE);
}
}

View File

@ -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<eeprom_device *>(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 )

View File

@ -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_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<eeprom_device *>(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<eeprom_device *>(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<eeprom_device *>(device);
eeprom->write_bit(data);
}

View File

@ -424,11 +424,11 @@ static WRITE32_HANDLER( ctrl0_w )
model2_state *state = space->machine().driver_data<model2_state>();
if(ACCESSING_BITS_0_7)
{
eeprom_device *device = space->machine().device<eeprom_device>("eeprom");
eeprom_device *eeprom = space->machine().device<eeprom_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_device>("eeprom")->read_bit() << 5);
}
}

View File

@ -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_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 )

View File

@ -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 )

View File

@ -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
/**********************************************************************************/

View File

@ -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<eeprom_device *>(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<eeprom_device *>(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 */

View File

@ -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_device>("eeprom");
state->m_tc0220ioc = machine.device("tc0220ioc");
state->m_tc0100scn = machine.device("tc0100scn");
state->m_tc0110pcr = machine.device("tc0110pcr");

View File

@ -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

View File

@ -112,9 +112,9 @@ static WRITE16_HANDLER( pirates_out_w )
eeprom_device *eeprom = space->machine().device<eeprom_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<okim6295_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

View File

@ -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<playmark_state>();
state->m_oki = machine.device<okim6295_device>("oki");
state->m_eeprom = machine.device("eeprom");
state->m_eeprom = machine.device<eeprom_device>("eeprom");
state->save_item(NAME(state->m_bgscrollx));
state->save_item(NAME(state->m_bgscrolly));

View File

@ -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<eeprom_device *>(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

View File

@ -161,7 +161,8 @@ static READ16_DEVICE_HANDLER( pntnpuzl_eeprom_r )
{
pntnpuzl_state *state = device->machine().driver_data<pntnpuzl_state>();
/* 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<eeprom_device *>(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<eeprom_device *>(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);
}

View File

@ -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_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 )

View File

@ -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<eeprom_device *>(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 )

View File

@ -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<eeprom_device *>(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

View File

@ -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<eeprom_device *>(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

View File

@ -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<eeprom_device *>(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 )

View File

@ -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<eeprom_device *>(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 ) )

View File

@ -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<eeprom_device *>(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 )

View File

@ -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<eeprom_device *>(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 ) )

View File

@ -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)

View File

@ -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_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_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_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)

View File

@ -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_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_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_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_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 )

View File

@ -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<eeprom_device *>(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<eeprom_device *>(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

View File

@ -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<eeprom_device *>(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<eeprom_device *>(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 )

View File

@ -386,14 +386,15 @@ static WRITE8_DEVICE_HANDLER( eeprom_w )
{
sigmab98_state *state = device->machine().driver_data<sigmab98_state>();
// latch the bit
eeprom_write_bit(device, data & 0x40);
eeprom_device *eeprom = downcast<eeprom_device *>(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<eeprom_device *>(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<eeprom_device *>(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)

View File

@ -130,7 +130,7 @@ INPUT_PORTS_END
static READ32_HANDLER( simpl156_inputs_read )
{
simpl156_state *state = space->machine().driver_data<simpl156_state>();
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);
}

View File

@ -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

View File

@ -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_device>("eeprom")->read_bit();
case 0xaff8: return space->machine().device<okim6295_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<eeprom_device *>(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<eeprom_device *>(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<eeprom_device *>(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_device>("eeprom")->read_bit();
}
}

View File

@ -463,7 +463,8 @@ static READ16_DEVICE_HANDLER( gdfs_eeprom_r )
ssv_state *state = device->machine().driver_data<ssv_state>();
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<eeprom_device *>(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<eeprom_device *>(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;

View File

@ -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<eeprom_device *>(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

View File

@ -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_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 )

View File

@ -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 )

View File

@ -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 )

View File

@ -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_device>("eeprom");
state->m_tc0100scn = machine.device("tc0100scn");
state->m_tc0150rod = machine.device("tc0150rod");
state->m_tc0480scp = machine.device("tc0480scp");

View File

@ -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 )

View File

@ -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<eeprom_device *>(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<eeprom_device *>(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 );
}
}

View File

@ -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<tmaster_state>();
device_t *eeprom = space->machine().device(galgames_eeprom_names[state->m_galgames_cart]);
eeprom_device *eeprom = space->machine().device<eeprom_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<eeprom_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<eeprom_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<eeprom_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<eeprom_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;

View File

@ -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<eeprom_device *>(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)

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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_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 )

View File

@ -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<eeprom_device *>(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)

View File

@ -69,23 +69,28 @@ public:
static READ16_DEVICE_HANDLER( eeprom_r )
{
if(offset)
return eeprom_read_bit(device);
{
eeprom_device *eeprom = downcast<eeprom_device *>(device);
return eeprom->read_bit();
}
else
return 0;
}
static READ32_DEVICE_HANDLER( eeprom32_r )
{
return eeprom_read_bit(device);
eeprom_device *eeprom = downcast<eeprom_device *>(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<eeprom_device *>(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<eeprom_device *>(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<eeprom_device *>(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 )

View File

@ -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 )

View File

@ -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

View File

@ -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

View File

@ -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<eeprom_device *>(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<eeprom_device *>(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<eeprom_device *>(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 ) )

View File

@ -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)

Some files were not shown because too many files have changed in this diff Show More