diff --git a/src/mame/drivers/othunder.c b/src/mame/drivers/othunder.c index 5c269e8a495..361c80e2366 100644 --- a/src/mame/drivers/othunder.c +++ b/src/mame/drivers/othunder.c @@ -234,7 +234,7 @@ TODO: #include "cpu/z80/z80.h" #include "includes/taitoipt.h" #include "cpu/m68000/m68000.h" -#include "machine/eeprom.h" +#include "machine/eepromdev.h" #include "video/taitoic.h" #include "audio/taitosnd.h" #include "sound/2610intf.h" @@ -322,29 +322,9 @@ static const eeprom_interface eeprom_intf = "0100111111" /* unlock command */ }; -static NVRAM_HANDLER( othunder ) -{ - if (read_or_write) - eeprom_save(file); - else - { - eeprom_init(machine, &eeprom_intf); - - if (file) - eeprom_load(file); - else - eeprom_set_data(default_eeprom,128); /* Default the gun setup values */ - } -} - -static int eeprom_r(void) -{ - return (eeprom_read_bit() & 0x01)<<7; -} - - static WRITE16_HANDLER( othunder_TC0220IOC_w ) { + const device_config *device; if (ACCESSING_BITS_0_7) { switch (offset) @@ -366,9 +346,10 @@ static WRITE16_HANDLER( othunder_TC0220IOC_w ) if (data & 4) popmessage("OBPRI SET!"); - eeprom_write_bit(data & 0x40); - eeprom_set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE); - eeprom_set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE); + device = devtag_get_device(space->machine, "eeprom"); + eepromdev_write_bit(device, data & 0x40); + eepromdev_set_clock_line(device, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE); + eepromdev_set_cs_line(device, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); break; default: @@ -384,10 +365,12 @@ if (data & 4) static READ16_HANDLER( othunder_TC0220IOC_r ) { + const device_config *device; switch (offset) { case 0x03: - return eeprom_r(); + device = devtag_get_device(space->machine, "eeprom"); + return (eepromdev_read_bit(device) & 1) << 7; default: return TC0220IOC_r( space, offset ); @@ -698,7 +681,8 @@ static MACHINE_DRIVER_START( othunder ) MDRV_CPU_ADD("audiocpu", Z80,16000000/4 ) /* 4 MHz */ MDRV_CPU_PROGRAM_MAP(z80_sound_map) - MDRV_NVRAM_HANDLER(othunder) + MDRV_EEPROM_ADD("eeprom", eeprom_intf) + MDRV_MACHINE_START(othunder) MDRV_MACHINE_RESET(othunder) @@ -782,6 +766,9 @@ ROM_START( othunder ) ROM_LOAD( "pal16l8a-b67-11.ic36", 0x0200, 0x0104, CRC(3177fb06) SHA1(c128277fe03342d9ec8da3c6e08a404a3f010547) ) ROM_LOAD( "pal20l8b-b67-12.ic37", 0x0400, 0x0144, CRC(a47c2798) SHA1(8c963efd416b3f6586cb12afb9417dc95c2bc574) ) ROM_LOAD( "pal20l8b-b67-10.ic33", 0x0600, 0x0144, CRC(4ced09c7) SHA1(519e6152cc5e4cb3ec24c4dc09101dddf22988aa) ) + + ROM_REGION16_BE( 0x80, "eeprom", 0 ) + ROM_LOAD16_WORD( "eeprom-othunder.bin", 0x0000, 0x0080, CRC(3729b844) SHA1(f6bb41d293d1e47214f8b2d147991404f3278ebf) ) ROM_END ROM_START( othunderu ) @@ -818,6 +805,9 @@ ROM_START( othunderu ) ROM_LOAD( "pal16l8a-b67-11.ic36", 0x0200, 0x0104, CRC(3177fb06) SHA1(c128277fe03342d9ec8da3c6e08a404a3f010547) ) ROM_LOAD( "pal20l8b-b67-12.ic37", 0x0400, 0x0144, CRC(a47c2798) SHA1(8c963efd416b3f6586cb12afb9417dc95c2bc574) ) ROM_LOAD( "pal20l8b-b67-10.ic33", 0x0600, 0x0144, CRC(4ced09c7) SHA1(519e6152cc5e4cb3ec24c4dc09101dddf22988aa) ) + + ROM_REGION16_BE( 0x80, "eeprom", 0 ) + ROM_LOAD16_WORD( "eeprom-othunder.bin", 0x0000, 0x0080, CRC(3729b844) SHA1(f6bb41d293d1e47214f8b2d147991404f3278ebf) ) ROM_END ROM_START( othunderuo ) @@ -854,6 +844,9 @@ ROM_START( othunderuo ) ROM_LOAD( "pal16l8a-b67-11.ic36", 0x0200, 0x0104, CRC(3177fb06) SHA1(c128277fe03342d9ec8da3c6e08a404a3f010547) ) ROM_LOAD( "pal20l8b-b67-12.ic37", 0x0400, 0x0144, CRC(a47c2798) SHA1(8c963efd416b3f6586cb12afb9417dc95c2bc574) ) ROM_LOAD( "pal20l8b-b67-10.ic33", 0x0600, 0x0144, CRC(4ced09c7) SHA1(519e6152cc5e4cb3ec24c4dc09101dddf22988aa) ) + + ROM_REGION16_BE( 0x80, "eeprom", 0 ) + ROM_LOAD16_WORD( "eeprom-othunder.bin", 0x0000, 0x0080, CRC(3729b844) SHA1(f6bb41d293d1e47214f8b2d147991404f3278ebf) ) ROM_END ROM_START( othunderj ) @@ -890,6 +883,9 @@ ROM_START( othunderj ) ROM_LOAD( "pal16l8a-b67-11.ic36", 0x0200, 0x0104, CRC(3177fb06) SHA1(c128277fe03342d9ec8da3c6e08a404a3f010547) ) ROM_LOAD( "pal20l8b-b67-12.ic37", 0x0400, 0x0144, CRC(a47c2798) SHA1(8c963efd416b3f6586cb12afb9417dc95c2bc574) ) ROM_LOAD( "pal20l8b-b67-10.ic33", 0x0600, 0x0144, CRC(4ced09c7) SHA1(519e6152cc5e4cb3ec24c4dc09101dddf22988aa) ) + + ROM_REGION16_BE( 0x80, "eeprom", 0 ) + ROM_LOAD16_WORD( "eeprom-othunder.bin", 0x0000, 0x0080, CRC(3729b844) SHA1(f6bb41d293d1e47214f8b2d147991404f3278ebf) ) ROM_END diff --git a/src/mame/drivers/pirates.c b/src/mame/drivers/pirates.c index 71e9dcf611a..d7555d5f824 100644 --- a/src/mame/drivers/pirates.c +++ b/src/mame/drivers/pirates.c @@ -89,7 +89,7 @@ Notes: #include "driver.h" #include "cpu/m68000/m68000.h" -#include "machine/eeprom.h" +#include "machine/eepromdev.h" #include "sound/okim6295.h" extern UINT16 *pirates_tx_tileram, *pirates_spriteram; @@ -115,24 +115,16 @@ static const eeprom_interface eeprom_intf = "*10011xxxx" /* unlock command */ }; -static NVRAM_HANDLER( pirates ) -{ - if (read_or_write) eeprom_save(file); - else - { - eeprom_init(machine, &eeprom_intf); - if (file) eeprom_load(file); - } -} - static WRITE16_HANDLER( pirates_out_w ) { if (ACCESSING_BITS_0_7) { + const device_config *eeprom = devtag_get_device(space->machine, "eeprom"); + /* bits 0-2 control EEPROM */ - 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); + eepromdev_write_bit(eeprom, data & 0x04); + eepromdev_set_cs_line(eeprom, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); + eepromdev_set_clock_line(eeprom, (data & 0x02) ? ASSERT_LINE : CLEAR_LINE); /* bit 6 selects oki bank */ okim6295_set_bank_base(devtag_get_device(space->machine, "oki"), (data & 0x40) ? 0x40000 : 0x00000); @@ -226,7 +218,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_CUSTOM(eeprom_bit_r, NULL) // EEPROM data + PORT_BIT( 0x0010, IP_ACTIVE_HIGH,IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_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 @@ -282,7 +274,7 @@ static MACHINE_DRIVER_START( pirates ) MDRV_CPU_PROGRAM_MAP(pirates_map) MDRV_CPU_VBLANK_INT("screen", irq1_line_hold) - MDRV_NVRAM_HANDLER(pirates) + MDRV_EEPROM_ADD("eeprom", eeprom_intf) MDRV_GFXDECODE(pirates) diff --git a/src/mame/drivers/playmark.c b/src/mame/drivers/playmark.c index f6eeacf7daa..6b185b799fa 100644 --- a/src/mame/drivers/playmark.c +++ b/src/mame/drivers/playmark.c @@ -41,7 +41,7 @@ TODO: #include "driver.h" #include "cpu/m68000/m68000.h" -#include "machine/eeprom.h" +#include "machine/eepromdev.h" #include "cpu/pic16c5x/pic16c5x.h" #include "sound/okim6295.h" #include "includes/playmark.h" @@ -84,31 +84,12 @@ static const eeprom_interface eeprom_intf = 5 /* reset_delay (otherwise wbeachvl will hang when saving settings) */ }; -static NVRAM_HANDLER( wbeachvl ) -{ - if (read_or_write) - { - eeprom_save(file); - } - else - { - eeprom_init(machine, &eeprom_intf); - - if (file) - eeprom_load(file); - else - { - UINT8 init[128]; - memset(init,0,128); - eeprom_set_data(init,128); - } - } -} - static WRITE16_HANDLER( wbeachvl_coin_eeprom_w ) { if (ACCESSING_BITS_0_7) { + const device_config *eeprom = devtag_get_device(space->machine, "eeprom"); + /* bits 0-3 are coin counters? (only 0 used?) */ coin_counter_w(space->machine, 0,data & 0x01); coin_counter_w(space->machine, 1,data & 0x02); @@ -116,9 +97,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((data & 0x20) ? CLEAR_LINE : ASSERT_LINE); - eeprom_write_bit(data & 0x80); - eeprom_set_clock_line((data & 0x40) ? CLEAR_LINE : ASSERT_LINE); + eepromdev_set_cs_line(eeprom, (data & 0x20) ? CLEAR_LINE : ASSERT_LINE); + eepromdev_write_bit(eeprom, data & 0x80); + eepromdev_set_clock_line(eeprom, (data & 0x40) ? CLEAR_LINE : ASSERT_LINE); } } @@ -126,11 +107,12 @@ static WRITE16_HANDLER( hotmind_coin_eeprom_w ) { if (ACCESSING_BITS_0_7) { + const device_config *eeprom = devtag_get_device(space->machine, "eeprom"); coin_counter_w(space->machine, 0,data & 0x20); - eeprom_set_cs_line((data & 1) ? CLEAR_LINE : ASSERT_LINE); - eeprom_write_bit(data & 4); - eeprom_set_clock_line((data & 2) ? ASSERT_LINE : CLEAR_LINE ); + eepromdev_set_cs_line(eeprom, (data & 1) ? CLEAR_LINE : ASSERT_LINE); + eepromdev_write_bit(eeprom, data & 4); + eepromdev_set_clock_line(eeprom, (data & 2) ? ASSERT_LINE : CLEAR_LINE ); } } @@ -457,7 +439,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_CUSTOM(eeprom_bit_r, NULL) /* EEPROM data */ + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit) /* EEPROM data */ PORT_START("P1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) @@ -623,7 +605,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_CUSTOM(eeprom_bit_r, NULL) /* EEPROM data */ + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit) /* EEPROM data */ PORT_START("DSW1") PORT_DIPNAME( 0x07, 0x07, DEF_STR( Difficulty ) ) @@ -962,7 +944,8 @@ static MACHINE_DRIVER_START( wbeachvl ) /* Program and Data Maps are internal to the MCU */ // MDRV_CPU_IO_MAP(playmark_sound_io_map) - MDRV_NVRAM_HANDLER(wbeachvl) + MDRV_EEPROM_ADD("eeprom", eeprom_intf) + MDRV_EEPROM_DEFAULT_VALUE(0) /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -1030,7 +1013,8 @@ static MACHINE_DRIVER_START( hotmind ) /* Program and Data Maps are internal to the MCU */ MDRV_CPU_IO_MAP(playmark_sound_io_map) - MDRV_NVRAM_HANDLER(wbeachvl) + MDRV_EEPROM_ADD("eeprom", eeprom_intf) + MDRV_EEPROM_DEFAULT_VALUE(0) /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/pntnpuzl.c b/src/mame/drivers/pntnpuzl.c index 7b396231108..82fd1e4ec9d 100644 --- a/src/mame/drivers/pntnpuzl.c +++ b/src/mame/drivers/pntnpuzl.c @@ -122,7 +122,7 @@ CN1 standard DB15 VGA connector (15KHz) #include "driver.h" #include "cpu/m68000/m68000.h" -#include "machine/eeprom.h" +#include "machine/eepromdev.h" static const eeprom_interface eeprom_intf = @@ -136,36 +136,15 @@ static const eeprom_interface eeprom_intf = "*10011xxxx" /* unlock command */ }; -static NVRAM_HANDLER( pntnpuzl ) -{ - if (read_or_write) - eeprom_save(file); - else - { - eeprom_init(machine, &eeprom_intf); - - if (file) - eeprom_load(file); - else - { - UINT32 length, size; - UINT8 *dat; - - dat = (UINT8 *)eeprom_get_data_pointer(&length, &size); - memset(dat, 0, length * size); - } - } -} - static UINT16 pntnpuzl_eeprom; -static READ16_HANDLER( pntnpuzl_eeprom_r ) +static READ16_DEVICE_HANDLER( pntnpuzl_eeprom_r ) { /* bit 11 is EEPROM data */ - return (pntnpuzl_eeprom & 0xf4ff) | (eeprom_read_bit()<<11) | (input_port_read(space->machine, "IN1") & 0x0300); + return (pntnpuzl_eeprom & 0xf4ff) | (eepromdev_read_bit(device)<<11) | (input_port_read(device->machine, "IN1") & 0x0300); } -static WRITE16_HANDLER( pntnpuzl_eeprom_w ) +static WRITE16_DEVICE_HANDLER( pntnpuzl_eeprom_w ) { pntnpuzl_eeprom = data; @@ -173,9 +152,9 @@ static WRITE16_HANDLER( pntnpuzl_eeprom_w ) /* bit 13 is clock (active high) */ /* bit 14 is cs (active high) */ - 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); + eepromdev_write_bit(device, data & 0x1000); + eepromdev_set_cs_line(device, (data & 0x4000) ? CLEAR_LINE : ASSERT_LINE); + eepromdev_set_clock_line(device, (data & 0x2000) ? ASSERT_LINE : CLEAR_LINE); } @@ -388,9 +367,9 @@ static ADDRESS_MAP_START( pntnpuzl_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x100000, 0x100001) AM_READNOP //| irq lines clear AM_RANGE(0x180000, 0x180001) AM_READNOP //| AM_RANGE(0x200000, 0x200001) AM_WRITE(pntnpuzl_200000_w) - AM_RANGE(0x280000, 0x280001) AM_READ(pntnpuzl_eeprom_r) + AM_RANGE(0x280000, 0x280001) AM_DEVREAD("eeprom", pntnpuzl_eeprom_r) AM_RANGE(0x280002, 0x280003) AM_READ_PORT("IN2") - AM_RANGE(0x280000, 0x280001) AM_WRITE(pntnpuzl_eeprom_w) + AM_RANGE(0x280000, 0x280001) AM_DEVWRITE("eeprom", pntnpuzl_eeprom_w) AM_RANGE(0x280008, 0x280009) AM_WRITENOP AM_RANGE(0x28000a, 0x28000b) AM_WRITENOP AM_RANGE(0x280010, 0x280011) AM_WRITENOP @@ -458,7 +437,7 @@ static MACHINE_DRIVER_START( pntnpuzl ) MDRV_CPU_PROGRAM_MAP(pntnpuzl_map) MDRV_CPU_VBLANK_INT("screen", pntnpuzl_irq) // irq1 = coin irq2 = service irq4 = coin - MDRV_NVRAM_HANDLER(pntnpuzl) + MDRV_EEPROM_ADD("eeprom", eeprom_intf) MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/psikyo4.c b/src/mame/drivers/psikyo4.c index 539d2507206..7dfa4cb69cb 100644 --- a/src/mame/drivers/psikyo4.c +++ b/src/mame/drivers/psikyo4.c @@ -129,7 +129,7 @@ ROMs - #include "driver.h" #include "cpu/sh2/sh2.h" -#include "machine/eeprom.h" +#include "machine/eepromdev.h" #include "sound/ymf278b.h" #include "rendlay.h" #include "includes/psikyo4.h" @@ -165,37 +165,13 @@ static const eeprom_interface eeprom_interface_93C56 = // "*10010xxxx" // erase all 1 00 10xxxx }; -static NVRAM_HANDLER(93C56) -{ - if (read_or_write) - { - eeprom_save(file); - } - else - { - eeprom_init(machine, &eeprom_interface_93C56); - if (file) - { - eeprom_load(file); - } - else // these games want the eeprom all zeros by default - { - UINT32 length, size; - UINT8 *dat; - - dat = (UINT8 *)eeprom_get_data_pointer(&length, &size); - memset(dat, 0, length * size); - } - } -} - -static WRITE32_HANDLER( ps4_eeprom_w ) +static WRITE32_DEVICE_HANDLER( ps4_eeprom_w ) { if (ACCESSING_BITS_16_31) { - 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); + eepromdev_write_bit(device, (data & 0x00200000) ? 1 : 0); + eepromdev_set_cs_line(device, (data & 0x00800000) ? CLEAR_LINE : ASSERT_LINE); + eepromdev_set_clock_line(device, (data & 0x00400000) ? ASSERT_LINE : CLEAR_LINE); return; } @@ -203,11 +179,11 @@ static WRITE32_HANDLER( ps4_eeprom_w ) logerror("Unk EEPROM write %x mask %x\n", data, mem_mask); } -static READ32_HANDLER( ps4_eeprom_r ) +static READ32_DEVICE_HANDLER( ps4_eeprom_r ) { if (ACCESSING_BITS_16_31) { - return input_port_read(space->machine, "JP4"); + return input_port_read(device->machine, "JP4"); } // logerror("Unk EEPROM read mask %x\n", mem_mask); @@ -402,7 +378,7 @@ static ADDRESS_MAP_START( ps4_map, ADDRESS_SPACE_PROGRAM, 32 ) AM_RANGE(0x00000000, 0x000fffff) AM_ROM // program ROM (1 meg) AM_RANGE(0x02000000, 0x021fffff) AM_ROMBANK("bank1") // data ROM AM_RANGE(0x03000000, 0x030037ff) AM_RAM AM_BASE_SIZE_MEMBER(psikyo4_state, spriteram, spriteram_size) - AM_RANGE(0x03003fe0, 0x03003fe3) AM_READWRITE(ps4_eeprom_r,ps4_eeprom_w) + AM_RANGE(0x03003fe0, 0x03003fe3) AM_DEVREADWRITE("eeprom", ps4_eeprom_r,ps4_eeprom_w) AM_RANGE(0x03003fe4, 0x03003fe7) AM_READNOP // also writes to this address - might be vblank? // AM_RANGE(0x03003fe4, 0x03003fe7) AM_WRITENOP // might be vblank? AM_RANGE(0x03003fe4, 0x03003fef) AM_RAM_WRITE(ps4_vidregs_w) AM_BASE_MEMBER(psikyo4_state, vidregs) // vid regs? @@ -439,7 +415,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_CUSTOM(eeprom_bit_r, NULL) + PORT_BIT( 0x00100000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit) PORT_START("SYSTEM") /* system inputs */ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) // Screen 1 @@ -622,7 +598,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_CUSTOM(eeprom_bit_r, NULL) + PORT_BIT( 0x00100000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit) INPUT_PORTS_END /* unused inputs also act as duplicate buttons */ @@ -705,7 +681,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_CUSTOM(eeprom_bit_r, NULL) + PORT_BIT( 0x00100000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit) INPUT_PORTS_END @@ -760,7 +736,8 @@ static MACHINE_DRIVER_START( ps4big ) MDRV_MACHINE_START(psikyo4) MDRV_MACHINE_RESET(psikyo4) - MDRV_NVRAM_HANDLER(93C56) + MDRV_EEPROM_ADD("eeprom", eeprom_interface_93C56) + MDRV_EEPROM_DEFAULT_VALUE(0) /* video hardware */ MDRV_GFXDECODE(ps4)