diff --git a/src/mame/drivers/backfire.c b/src/mame/drivers/backfire.c index 2e68a23663b..feab75ac980 100644 --- a/src/mame/drivers/backfire.c +++ b/src/mame/drivers/backfire.c @@ -14,7 +14,7 @@ #include "driver.h" #include "includes/decocrpt.h" #include "includes/deco32.h" -#include "machine/eeprom.h" +#include "machine/eepromdev.h" #include "sound/okim6295.h" #include "sound/ymz280b.h" #include "cpu/arm/arm.h" @@ -224,37 +224,37 @@ static VIDEO_UPDATE(backfire) -static READ32_HANDLER(backfire_eeprom_r) +static READ32_DEVICE_HANDLER(backfire_eeprom_r) { /* some kind of screen indicator? checked by backfira set before it will boot */ - int backfire_screen = mame_rand(space->machine) & 1; - return ((eeprom_read_bit() << 24) | input_port_read(space->machine, "IN0") - | ((input_port_read(space->machine, "IN2") & 0xbf) << 16) - | ((input_port_read(space->machine, "IN3") & 0x40) << 16)) ^ (backfire_screen << 26) ; + int backfire_screen = mame_rand(device->machine) & 1; + return ((eepromdev_read_bit(device) << 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) ; } static READ32_HANDLER(backfire_control2_r) { // logerror("%08x:Read eprom %08x (%08x)\n", cpu_get_pc(space->cpu), offset << 1, mem_mask); - return (eeprom_read_bit() << 24) | input_port_read(space->machine, "IN1") | (input_port_read(space->machine, "IN1") << 16); + return (eepromdev_read_bit(devtag_get_device(space->machine, "eeprom")) << 24) | input_port_read(space->machine, "IN1") | (input_port_read(space->machine, "IN1") << 16); } #ifdef UNUSED_FUNCTION static READ32_HANDLER(backfire_control3_r) { // logerror("%08x:Read eprom %08x (%08x)\n", cpu_get_pc(space->cpu), offset << 1, mem_mask); - return (eeprom_read_bit() << 24) | input_port_read(space->machine, "IN2") | (input_port_read(space->machine, "IN2") << 16); + return (eepromdev_read_bit(devtag_get_device(space->machine, "eeprom")) << 24) | input_port_read(space->machine, "IN2") | (input_port_read(space->machine, "IN2") << 16); } #endif -static WRITE32_HANDLER(backfire_eeprom_w) +static WRITE32_DEVICE_HANDLER(backfire_eeprom_w) { - logerror("%08x:write eprom %08x (%08x) %08x\n",cpu_get_pc(space->cpu),offset<<1,mem_mask,data); + logerror("%s:write eprom %08x (%08x) %08x\n",cpuexec_describe_context(device->machine),offset<<1,mem_mask,data); if (ACCESSING_BITS_0_7) { - 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); + eepromdev_set_clock_line(device, (data & 0x2) ? ASSERT_LINE : CLEAR_LINE); + eepromdev_write_bit(device, data & 0x1); + eepromdev_set_cs_line(device, (data & 0x4) ? CLEAR_LINE : ASSERT_LINE); } } @@ -326,9 +326,9 @@ static ADDRESS_MAP_START( backfire_map, ADDRESS_SPACE_PROGRAM, 32 ) AM_RANGE(0x184000, 0x185fff) AM_RAM AM_BASE( &backfire_spriteram32_1 ) AM_RANGE(0x18c000, 0x18dfff) AM_RAM AM_BASE( &backfire_spriteram32_2 ) - AM_RANGE(0x190000, 0x190003) AM_READ(backfire_eeprom_r) + AM_RANGE(0x190000, 0x190003) AM_DEVREAD("eeprom", backfire_eeprom_r) AM_RANGE(0x194000, 0x194003) AM_READ(backfire_control2_r) - AM_RANGE(0x1a4000, 0x1a4003) AM_WRITE(backfire_eeprom_w) + AM_RANGE(0x1a4000, 0x1a4003) AM_DEVWRITE("eeprom", backfire_eeprom_w) AM_RANGE(0x1a8000, 0x1a8003) AM_RAM AM_BASE(&backfire_left_priority) AM_RANGE(0x1ac000, 0x1ac003) AM_RAM AM_BASE(&backfire_right_priority) @@ -469,7 +469,7 @@ static MACHINE_DRIVER_START( backfire ) MDRV_CPU_PROGRAM_MAP(backfire_map) MDRV_CPU_VBLANK_INT("lscreen", deco32_vbl_interrupt) /* or is it "rscreen?" */ - MDRV_NVRAM_HANDLER(93C46) + MDRV_EEPROM_93C46_ADD("eeprom") /* video hardware */ MDRV_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/galpani2.c b/src/mame/drivers/galpani2.c index 4e214fcb616..443a8bf97e5 100644 --- a/src/mame/drivers/galpani2.c +++ b/src/mame/drivers/galpani2.c @@ -22,7 +22,7 @@ To Do: #include "driver.h" #include "cpu/m68000/m68000.h" #include "deprecat.h" -#include "machine/eeprom.h" +#include "machine/eepromdev.h" #include "includes/kaneko16.h" #include "sound/okim6295.h" @@ -35,24 +35,24 @@ To Do: ***************************************************************************/ static UINT16 eeprom_word; -static READ16_HANDLER(galpani2_eeprom_r) +static READ16_DEVICE_HANDLER(galpani2_eeprom_r) { - return (eeprom_word & ~1) | (eeprom_read_bit() & 1); + return (eeprom_word & ~1) | (eepromdev_read_bit(device) & 1); } -static WRITE16_HANDLER(galpani2_eeprom_w) +static WRITE16_DEVICE_HANDLER(galpani2_eeprom_w) { COMBINE_DATA( &eeprom_word ); if ( ACCESSING_BITS_0_7 ) { // latch the bit - eeprom_write_bit(data & 0x02); + eepromdev_write_bit(device, data & 0x02); // reset line asserted: reset. - eeprom_set_cs_line((data & 0x08) ? CLEAR_LINE : ASSERT_LINE ); + eepromdev_set_cs_line(device, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE ); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line((data & 0x04) ? ASSERT_LINE : CLEAR_LINE ); + eepromdev_set_clock_line(device, (data & 0x04) ? ASSERT_LINE : CLEAR_LINE ); } } @@ -298,7 +298,7 @@ static ADDRESS_MAP_START( galpani2_mem1, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x30c000, 0x30c001) AM_WRITENOP // ? hblank effect ? AM_RANGE(0x310000, 0x3101ff) AM_RAM_WRITE(galpani2_palette_0_w) AM_BASE(&galpani2_palette_0 ) // ? AM_RANGE(0x314000, 0x314001) AM_WRITENOP // ? flip backgrounds ? - AM_RANGE(0x318000, 0x318001) AM_READWRITE(galpani2_eeprom_r, galpani2_eeprom_w) // EEPROM + AM_RANGE(0x318000, 0x318001) AM_DEVREADWRITE("eeprom", galpani2_eeprom_r, galpani2_eeprom_w) // EEPROM AM_RANGE(0x380000, 0x387fff) AM_RAM // Palette? AM_RANGE(0x388000, 0x38ffff) AM_RAM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE_GENERIC(paletteram ) // Palette AM_RANGE(0x390000, 0x3901ff) AM_WRITENOP // ? at startup of service mode @@ -586,7 +586,7 @@ static MACHINE_DRIVER_START( galpani2 ) MDRV_CPU_VBLANK_INT_HACK(galpani2_interrupt2,GALPANI2_INTERRUPTS_NUM2) MDRV_MACHINE_RESET(galpani2) - MDRV_NVRAM_HANDLER(93C46) + MDRV_EEPROM_93C46_ADD("eeprom") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/jackpool.c b/src/mame/drivers/jackpool.c index 03be7108c1b..5ecfaed6d79 100644 --- a/src/mame/drivers/jackpool.c +++ b/src/mame/drivers/jackpool.c @@ -18,7 +18,7 @@ TODO: #include "driver.h" #include "cpu/m68000/m68000.h" #include "sound/okim6295.h" -#include "machine/eeprom.h" +#include "machine/eepromdev.h" static UINT16 *jackpool_vram; @@ -100,8 +100,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(); - case 0x2e: return eeprom_read_bit(); + case 0x2c: return eepromdev_read_bit(devtag_get_device(space->machine,"eeprom")); + case 0x2e: return eepromdev_read_bit(devtag_get_device(space->machine,"eeprom")); // default: printf("R %02x\n",offset*2); break; } @@ -128,11 +128,11 @@ static WRITE16_HANDLER( jackpool_io_w ) case 0x4a: /* ---- ---x Ticket motor */break; case 0x4c: /* ---- ---x Hopper motor */break; case 0x4e: map_vreg = data & 1; break; - case 0x50: eeprom_set_cs_line((data & 1) ? CLEAR_LINE : ASSERT_LINE ); break; - case 0x52: eeprom_set_clock_line((data & 1) ? ASSERT_LINE : CLEAR_LINE ); break; - case 0x54: eeprom_write_bit(data & 1); break; -// case 0x5a: eeprom_set_cs_line((data & 1) ? CLEAR_LINE : ASSERT_LINE ); break; -// case 0x5c: eeprom_set_cs_line((data & 1) ? CLEAR_LINE : ASSERT_LINE ); break; + case 0x50: eepromdev_set_cs_line(devtag_get_device(space->machine,"eeprom"), (data & 1) ? CLEAR_LINE : ASSERT_LINE ); break; + case 0x52: eepromdev_set_clock_line(devtag_get_device(space->machine,"eeprom"), (data & 1) ? ASSERT_LINE : CLEAR_LINE ); break; + case 0x54: eepromdev_write_bit(devtag_get_device(space->machine,"eeprom"), data & 1); break; +// case 0x5a: eepromdev_set_cs_line(devtag_get_device(space->machine,"eeprom"), (data & 1) ? CLEAR_LINE : ASSERT_LINE ); break; +// case 0x5c: eepromdev_set_cs_line(devtag_get_device(space->machine,"eeprom"), (data & 1) ? CLEAR_LINE : ASSERT_LINE ); break; case 0x60: break; // default: printf("[%02x] <- %02x W\n",offset*2,data); break; } @@ -141,17 +141,17 @@ static WRITE16_HANDLER( jackpool_io_w ) if(offset*2 == 0x54) { printf("Write bit %02x\n",data); - eeprom_write_bit(data & 1); + eepromdev_write_bit(devtag_get_device(space->machine,"eeprom"), data & 1); } if(offset*2 == 0x52) { printf("Clock bit %02x\n",data); - eeprom_set_clock_line((data & 1) ? ASSERT_LINE : CLEAR_LINE ); + eepromdev_set_clock_line(devtag_get_device(space->machine,"eeprom"), (data & 1) ? ASSERT_LINE : CLEAR_LINE ); } if(offset*2 == 0x50) { printf("chip select bit %02x\n",data); - eeprom_set_cs_line((data & 1) ? CLEAR_LINE : ASSERT_LINE ); + eepromdev_set_cs_line(devtag_get_device(space->machine,"eeprom"), (data & 1) ? CLEAR_LINE : ASSERT_LINE ); } #endif } @@ -253,7 +253,7 @@ static MACHINE_DRIVER_START( jackpool ) MDRV_SCREEN_SIZE(64*8, 64*8) MDRV_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) - MDRV_NVRAM_HANDLER(93C46) + MDRV_EEPROM_93C46_ADD("eeprom") MDRV_PALETTE_LENGTH(0x200) diff --git a/src/mame/drivers/lordgun.c b/src/mame/drivers/lordgun.c index 7ed919e6249..9c307021c07 100644 --- a/src/mame/drivers/lordgun.c +++ b/src/mame/drivers/lordgun.c @@ -30,7 +30,7 @@ To do: #include "cpu/z80/z80.h" #include "cpu/m68000/m68000.h" #include "machine/8255ppi.h" -#include "machine/eeprom.h" +#include "machine/eepromdev.h" #include "sound/3812intf.h" #include "sound/okim6295.h" #include "includes/lordgun.h" @@ -90,6 +90,7 @@ static WRITE8_DEVICE_HANDLER(fake2_w) static WRITE8_DEVICE_HANDLER( lordgun_eeprom_w ) { + const device_config *eeprom = devtag_get_device(device->machine, "eeprom"); static UINT8 old; int i; @@ -107,13 +108,13 @@ static WRITE8_DEVICE_HANDLER( lordgun_eeprom_w ) lordgun_update_gun(device->machine, i); // latch the bit - eeprom_write_bit(data & 0x40); + eepromdev_write_bit(eeprom, data & 0x40); // reset line asserted: reset. - eeprom_set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE ); + eepromdev_set_cs_line(eeprom, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE ); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE ); + eepromdev_set_clock_line(eeprom, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE ); lordgun_whitescreen = data & 0x80; @@ -317,7 +318,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_CUSTOM(eeprom_bit_r, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit) PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) @@ -421,7 +422,7 @@ static MACHINE_DRIVER_START( lordgun ) MDRV_PPI8255_ADD( "ppi8255_0", ppi8255_intf[0] ) MDRV_PPI8255_ADD( "ppi8255_1", ppi8255_intf[1] ) - MDRV_NVRAM_HANDLER(93C46) + MDRV_EEPROM_93C46_ADD("eeprom") MDRV_GFXDECODE(lordgun) diff --git a/src/mame/drivers/midas.c b/src/mame/drivers/midas.c index 91b61c0ea2a..4aaca4316f1 100644 --- a/src/mame/drivers/midas.c +++ b/src/mame/drivers/midas.c @@ -48,7 +48,7 @@ #include "driver.h" #include "cpu/m68000/m68000.h" #include "sound/ymz280b.h" -#include "machine/eeprom.h" +#include "machine/eepromdev.h" #define MIDAS_DEBUG 0 @@ -178,18 +178,18 @@ static VIDEO_UPDATE( livequiz ) return 0; } -static WRITE16_HANDLER( livequiz_eeprom_w ) +static WRITE16_DEVICE_HANDLER( livequiz_eeprom_w ) { if (ACCESSING_BITS_0_7) { // latch the bit - eeprom_write_bit(data & 0x04); + eepromdev_write_bit(device, data & 0x04); // reset line asserted: reset. - eeprom_set_cs_line((data & 0x01) ? CLEAR_LINE : ASSERT_LINE ); + eepromdev_set_cs_line(device, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE ); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line((data & 0x02) ? ASSERT_LINE : CLEAR_LINE ); + eepromdev_set_clock_line(device, (data & 0x02) ? ASSERT_LINE : CLEAR_LINE ); } } @@ -225,7 +225,7 @@ static ADDRESS_MAP_START( mem_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x940000, 0x940001) AM_READ_PORT("IN0") AM_RANGE(0x980000, 0x980001) AM_READ_PORT("IN1") - AM_RANGE(0x9a0000, 0x9a0001) AM_WRITE( livequiz_eeprom_w ) + AM_RANGE(0x9a0000, 0x9a0001) AM_DEVWRITE( "eeprom", livequiz_eeprom_w ) AM_RANGE(0x9c0000, 0x9c0005) AM_WRITE( livequiz_gfxregs_w ) AM_BASE( &livequiz_gfxregs ) @@ -329,7 +329,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_CUSTOM(eeprom_bit_r, NULL) // EEPROM + PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_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 ) @@ -437,7 +437,7 @@ static MACHINE_DRIVER_START( livequiz ) MDRV_CPU_PROGRAM_MAP(mem_map) MDRV_CPU_VBLANK_INT("screen", irq1_line_hold) - MDRV_NVRAM_HANDLER(93C46) + MDRV_EEPROM_93C46_ADD("eeprom") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/model2.c b/src/mame/drivers/model2.c index d3f5a79e8de..4b5b782f221 100644 --- a/src/mame/drivers/model2.c +++ b/src/mame/drivers/model2.c @@ -50,7 +50,7 @@ #include "driver.h" #include "deprecat.h" -#include "machine/eeprom.h" +#include "machine/eepromdev.h" #include "video/segaic24.h" #include "cpu/i960/i960.h" #include "cpu/m68000/m68000.h" @@ -243,8 +243,6 @@ static void copro_fifoout_push(const device_config *device, UINT32 data) static NVRAM_HANDLER( model2 ) { - NVRAM_HANDLER_CALL(93C46); - if (read_or_write) { mame_fwrite(file, model2_backup1, 0x3fff); @@ -410,10 +408,11 @@ static WRITE32_HANDLER( ctrl0_w ) { if(ACCESSING_BITS_0_7) { + const device_config *device = devtag_get_device(space->machine, "eeprom"); model2_ctrlmode = data & 0x01; - 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); + eepromdev_write_bit(device, data & 0x20); + eepromdev_set_clock_line(device, (data & 0x80) ? ASSERT_LINE : CLEAR_LINE); + eepromdev_set_cs_line(device, (data & 0x40) ? CLEAR_LINE : ASSERT_LINE); } } @@ -452,7 +451,7 @@ static CUSTOM_INPUT( _1c00000_r ) else { ret &= ~0x0030; - return ret | 0x00d0 | (eeprom_read_bit() << 5); + return ret | 0x00d0 | (eepromdev_read_bit(devtag_get_device(field->port->machine, "eeprom")) << 5); } } @@ -1842,6 +1841,8 @@ static MACHINE_DRIVER_START( model2o ) MDRV_CPU_PROGRAM_MAP(copro_tgp_map) MDRV_MACHINE_RESET(model2o) + + MDRV_EEPROM_93C46_ADD("eeprom") MDRV_NVRAM_HANDLER( model2 ) MDRV_TIMER_ADD("timer0", model2_timer_cb) @@ -1896,6 +1897,8 @@ static MACHINE_DRIVER_START( model2a ) MDRV_CPU_PROGRAM_MAP(copro_tgp_map) MDRV_MACHINE_RESET(model2) + + MDRV_EEPROM_93C46_ADD("eeprom") MDRV_NVRAM_HANDLER( model2 ) MDRV_TIMER_ADD("timer0", model2_timer_cb) @@ -1955,6 +1958,8 @@ static MACHINE_DRIVER_START( model2b ) MDRV_QUANTUM_TIME(HZ(18000)) MDRV_MACHINE_RESET(model2b) + + MDRV_EEPROM_93C46_ADD("eeprom") MDRV_NVRAM_HANDLER( model2 ) MDRV_TIMER_ADD("timer0", model2_timer_cb) @@ -1998,6 +2003,8 @@ static MACHINE_DRIVER_START( model2c ) MDRV_CPU_PROGRAM_MAP(model2_snd) MDRV_MACHINE_RESET(model2c) + + MDRV_EEPROM_93C46_ADD("eeprom") MDRV_NVRAM_HANDLER( model2 ) MDRV_TIMER_ADD("timer0", model2_timer_cb) diff --git a/src/mame/drivers/pasha2.c b/src/mame/drivers/pasha2.c index 679763161a3..4d0d29c4237 100644 --- a/src/mame/drivers/pasha2.c +++ b/src/mame/drivers/pasha2.c @@ -73,7 +73,7 @@ Notes: #include "driver.h" #include "cpu/e132xs/e132xs.h" -#include "machine/eeprom.h" +#include "machine/eepromdev.h" #include "sound/okim6295.h" static UINT16 *bitmap0, *bitmap1, *wram; @@ -380,7 +380,7 @@ static MACHINE_DRIVER_START( pasha2 ) MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) MDRV_MACHINE_RESET(pasha2) - MDRV_NVRAM_HANDLER(93C46) + MDRV_EEPROM_93C46_ADD("eeprom") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/pzletime.c b/src/mame/drivers/pzletime.c index 1b8bc1cb144..2500080c93d 100644 --- a/src/mame/drivers/pzletime.c +++ b/src/mame/drivers/pzletime.c @@ -17,7 +17,7 @@ #include "driver.h" #include "cpu/m68000/m68000.h" #include "sound/okim6295.h" -#include "machine/eeprom.h" +#include "machine/eepromdev.h" static UINT16 *bg_videoram, *mid_videoram, *txt_videoram, *tilemap_regs, *video_regs; static tilemap *mid_tilemap, *txt_tilemap; @@ -127,13 +127,13 @@ static WRITE16_HANDLER( txt_videoram_w ) tilemap_mark_tile_dirty(txt_tilemap,offset); } -static WRITE16_HANDLER( eeprom_w ) +static WRITE16_DEVICE_HANDLER( eeprom_w ) { if( ACCESSING_BITS_0_7 ) { - 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 ); + eepromdev_write_bit(device, data & 0x01); + eepromdev_set_cs_line(device, (data & 0x02) ? CLEAR_LINE : ASSERT_LINE ); + eepromdev_set_clock_line(device, (data & 0x04) ? ASSERT_LINE : CLEAR_LINE ); } } @@ -193,7 +193,7 @@ static ADDRESS_MAP_START( pzletime_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0xc00000, 0xc00fff) AM_RAM_WRITE(mid_videoram_w) AM_BASE(&mid_videoram) AM_RANGE(0xc01000, 0xc01fff) AM_RAM_WRITE(txt_videoram_w) AM_BASE(&txt_videoram) AM_RANGE(0xd00000, 0xd01fff) AM_RAM AM_BASE_GENERIC(spriteram) - AM_RANGE(0xe00000, 0xe00001) AM_READ_PORT("INPUT") AM_WRITE(eeprom_w) + AM_RANGE(0xe00000, 0xe00001) AM_READ_PORT("INPUT") AM_DEVWRITE("eeprom", eeprom_w) AM_RANGE(0xe00002, 0xe00003) AM_READ_PORT("SYSTEM") AM_WRITE(ticket_w) AM_RANGE(0xe00004, 0xe00005) AM_DEVWRITE("oki", oki_bank_w) AM_RANGE(0xf00000, 0xf0ffff) AM_RAM @@ -208,7 +208,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_CUSTOM(eeprom_bit_r, NULL) /* eeprom */ + PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_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 ) @@ -286,7 +286,7 @@ static MACHINE_DRIVER_START( pzletime ) MDRV_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 28*8-1) MDRV_GFXDECODE(pzletime) MDRV_PALETTE_LENGTH(0x300 + 32768) - MDRV_NVRAM_HANDLER(93C46) + MDRV_EEPROM_93C46_ADD("eeprom") MDRV_PALETTE_INIT(pzletime) MDRV_VIDEO_START(pzletime) diff --git a/src/mame/drivers/rabbit.c b/src/mame/drivers/rabbit.c index 2b8cf76f113..cb171597366 100644 --- a/src/mame/drivers/rabbit.c +++ b/src/mame/drivers/rabbit.c @@ -79,7 +79,7 @@ Custom: Imagetek 15000 (2ch video & 2ch sound) #include "driver.h" #include "cpu/m68000/m68000.h" #include "deprecat.h" -#include "machine/eeprom.h" +#include "machine/eepromdev.h" #define VERBOSE_AUDIO_LOG (0) // enable to show audio writes (very noisy when music is playing) @@ -688,20 +688,20 @@ static WRITE32_HANDLER( rabbit_blitter_w ) } } -static WRITE32_HANDLER( rabbit_eeprom_write ) +static WRITE32_DEVICE_HANDLER( rabbit_eeprom_write ) { // don't disturb the EEPROM if we're not actually writing to it // (in particular, data & 0x100 here with mask = ffff00ff looks to be the watchdog) if (mem_mask == 0xff000000) { // latch the bit - eeprom_write_bit(data & 0x01000000); + eepromdev_write_bit(device, data & 0x01000000); // reset line asserted: reset. - eeprom_set_cs_line((data & 0x04000000) ? CLEAR_LINE : ASSERT_LINE ); + eepromdev_set_cs_line(device, (data & 0x04000000) ? CLEAR_LINE : ASSERT_LINE ); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line((data & 0x02000000) ? ASSERT_LINE : CLEAR_LINE ); + eepromdev_set_clock_line(device, (data & 0x02000000) ? ASSERT_LINE : CLEAR_LINE ); } } @@ -711,7 +711,7 @@ static ADDRESS_MAP_START( rabbit_map, ADDRESS_SPACE_PROGRAM, 32 ) AM_RANGE(0x000010, 0x000013) AM_WRITENOP // bug in code / emulation? AM_RANGE(0x000024, 0x000027) AM_WRITENOP // bug in code / emulation? AM_RANGE(0x00719c, 0x00719f) AM_WRITENOP // bug in code / emulation? - AM_RANGE(0x200000, 0x200003) AM_READ_PORT("INPUTS") AM_WRITE(rabbit_eeprom_write) + AM_RANGE(0x200000, 0x200003) AM_READ_PORT("INPUTS") AM_DEVWRITE("eeprom", rabbit_eeprom_write) AM_RANGE(0x400010, 0x400013) AM_READ(randomrabbits) // gfx chip status? AM_RANGE(0x400980, 0x400983) AM_READ(randomrabbits) // sound chip status? AM_RANGE(0x400984, 0x400987) AM_READ(randomrabbits) // sound chip status? @@ -745,7 +745,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( rabbit ) PORT_START("INPUTS") - PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL) // as per code at 4d932 + PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_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 ) @@ -933,7 +933,7 @@ static MACHINE_DRIVER_START( rabbit ) MDRV_CPU_ADD("maincpu",M68EC020,24000000) /* 24 MHz */ MDRV_CPU_PROGRAM_MAP(rabbit_map) MDRV_CPU_VBLANK_INT_HACK(rabbit_interrupts,262) - MDRV_NVRAM_HANDLER(93C46) + MDRV_EEPROM_93C46_ADD("eeprom") MDRV_GFXDECODE(rabbit) diff --git a/src/mame/drivers/spool99.c b/src/mame/drivers/spool99.c index 2812fce0991..2ef8586cbbd 100644 --- a/src/mame/drivers/spool99.c +++ b/src/mame/drivers/spool99.c @@ -90,7 +90,7 @@ Note #include "driver.h" #include "cpu/z80/z80.h" #include "sound/okim6295.h" -#include "machine/eeprom.h" +#include "machine/eepromdev.h" static UINT8 *spool99_main; static tilemap *sc0_tilemap; @@ -157,7 +157,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(); + case 0xafe7: return eepromdev_read_bit(devtag_get_device(space->machine,"eeprom")); case 0xaff8: return okim6295_r(devtag_get_device(space->machine, "oki"),0); } } @@ -166,30 +166,30 @@ static READ8_HANDLER( spool99_io_r ) return ROM[0xaf00+offset]; } -static WRITE8_HANDLER( eeprom_resetline_w ) +static WRITE8_DEVICE_HANDLER( eeprom_resetline_w ) { // reset line asserted: reset. - eeprom_set_cs_line((data & 0x01) ? CLEAR_LINE : ASSERT_LINE ); + eepromdev_set_cs_line(device, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE ); } -static WRITE8_HANDLER( eeprom_clockline_w ) +static WRITE8_DEVICE_HANDLER( eeprom_clockline_w ) { // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line((data & 0x01) ? ASSERT_LINE : CLEAR_LINE ); + eepromdev_set_clock_line(device, (data & 0x01) ? ASSERT_LINE : CLEAR_LINE ); } -static WRITE8_HANDLER( eeprom_dataline_w ) +static WRITE8_DEVICE_HANDLER( eeprom_dataline_w ) { // latch the bit - eeprom_write_bit(data & 0x01); + eepromdev_write_bit(device, data & 0x01); } static ADDRESS_MAP_START( spool99_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0xaeff) AM_RAM AM_BASE(&spool99_main) AM_RANGE(0xaf00, 0xafff) AM_READ(spool99_io_r) - AM_RANGE(0xafed, 0xafed) AM_WRITE(eeprom_resetline_w ) - AM_RANGE(0xafee, 0xafee) AM_WRITE(eeprom_clockline_w ) - AM_RANGE(0xafef, 0xafef) AM_WRITE(eeprom_dataline_w ) + AM_RANGE(0xafed, 0xafed) AM_DEVWRITE("eeprom", eeprom_resetline_w ) + AM_RANGE(0xafee, 0xafee) AM_DEVWRITE("eeprom", eeprom_clockline_w ) + AM_RANGE(0xafef, 0xafef) AM_DEVWRITE("eeprom", eeprom_dataline_w ) AM_RANGE(0xaff8, 0xaff8) AM_DEVWRITE("oki", okim6295_w) AM_RANGE(0xb000, 0xb3ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_le_w) AM_BASE_GENERIC(paletteram) // palette @@ -282,7 +282,7 @@ static MACHINE_DRIVER_START( spool99 ) MDRV_PALETTE_LENGTH(0x200) - MDRV_NVRAM_HANDLER(93C46) + MDRV_EEPROM_93C46_ADD("eeprom") MDRV_VIDEO_START(spool99) MDRV_VIDEO_UPDATE(spool99) diff --git a/src/mame/drivers/tecmosys.c b/src/mame/drivers/tecmosys.c index 09497a1946a..bb6dcd36045 100644 --- a/src/mame/drivers/tecmosys.c +++ b/src/mame/drivers/tecmosys.c @@ -183,7 +183,7 @@ ae500w07.ad1 - M6295 Samples (23c4001) #include "driver.h" #include "cpu/z80/z80.h" -#include "machine/eeprom.h" +#include "machine/eepromdev.h" #include "includes/tecmosys.h" #include "cpu/m68000/m68000.h" #include "sound/okim6295.h" @@ -359,19 +359,19 @@ static READ16_HANDLER( unk880000_r ) } -static READ16_HANDLER( eeprom_r ) +static READ16_DEVICE_HANDLER( eeprom_r ) { - return ((eeprom_read_bit() & 0x01) << 11); + return ((eepromdev_read_bit(device) & 0x01) << 11); } -static WRITE16_HANDLER( eeprom_w ) +static WRITE16_DEVICE_HANDLER( eeprom_w ) { if ( ACCESSING_BITS_8_15 ) { - 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 ); + eepromdev_write_bit(device, data & 0x0800); + eepromdev_set_cs_line(device, (data & 0x0200) ? CLEAR_LINE : ASSERT_LINE ); + eepromdev_set_clock_line(device, (data & 0x0400) ? CLEAR_LINE: ASSERT_LINE ); } } @@ -431,7 +431,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x980000, 0x980fff) AM_RAM_WRITE(tilemap_paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&tilemap_paletteram16) AM_RANGE(0x880000, 0x88002f) AM_WRITE( unk880000_w ) AM_BASE(&tecmosys_880000regs) // 10 byte dta@88000c, 880022=watchdog? - AM_RANGE(0xa00000, 0xa00001) AM_WRITE(eeprom_w ) + AM_RANGE(0xa00000, 0xa00001) AM_DEVWRITE("eeprom", eeprom_w ) AM_RANGE(0xa80000, 0xa80005) AM_WRITEONLY AM_BASE(&tecmosys_a80000regs) // a80000-3 scroll? a80004 inverted ? 3 : 0 AM_RANGE(0xb00000, 0xb00005) AM_WRITEONLY AM_BASE(&tecmosys_b00000regs) // b00000-3 scrool?, b00004 inverted ? 3 : 0 AM_RANGE(0xb80000, 0xb80001) AM_READWRITE(tecmosys_prot_status_r, tecmosys_prot_status_w) @@ -439,7 +439,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0xc80000, 0xc80005) AM_WRITEONLY AM_BASE(&tecmosys_c80000regs) // c80000-3 scrool? c80004 inverted ? 3 : 0 AM_RANGE(0xd00000, 0xd00001) AM_READ_PORT("P1") AM_RANGE(0xd00002, 0xd00003) AM_READ_PORT("P2") - AM_RANGE(0xd80000, 0xd80001) AM_READ(eeprom_r) + AM_RANGE(0xd80000, 0xd80001) AM_DEVREAD("eeprom", eeprom_r) AM_RANGE(0xe00000, 0xe00001) AM_WRITE( sound_w ) AM_RANGE(0xe80000, 0xe80001) AM_WRITE(tecmosys_prot_data_w) AM_RANGE(0xf00000, 0xf00001) AM_READ(sound_r) @@ -888,7 +888,7 @@ static MACHINE_DRIVER_START( deroon ) MDRV_GFXDECODE(tecmosys) - MDRV_NVRAM_HANDLER(93C46) + MDRV_EEPROM_93C46_ADD("eeprom") MDRV_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) diff --git a/src/mame/drivers/tmmjprd.c b/src/mame/drivers/tmmjprd.c index 30485cc249b..c42187e9642 100644 --- a/src/mame/drivers/tmmjprd.c +++ b/src/mame/drivers/tmmjprd.c @@ -32,7 +32,7 @@ #include "driver.h" #include "cpu/m68000/m68000.h" #include "deprecat.h" -#include "machine/eeprom.h" +#include "machine/eepromdev.h" #include "rendlay.h" @@ -460,7 +460,7 @@ static WRITE32_HANDLER( tmmjprd_blitter_w ) static UINT8 mux_data; -static WRITE32_HANDLER( tmmjprd_eeprom_write ) +static WRITE32_DEVICE_HANDLER( tmmjprd_eeprom_write ) { // don't disturb the EEPROM if we're not actually writing to it // (in particular, data & 0x100 here with mask = ffff00ff looks to be the watchdog) @@ -470,13 +470,13 @@ static WRITE32_HANDLER( tmmjprd_eeprom_write ) if (mem_mask == 0xff000000) { // latch the bit - eeprom_write_bit(data & 0x01000000); + eepromdev_write_bit(device, data & 0x01000000); // reset line asserted: reset. - eeprom_set_cs_line((data & 0x04000000) ? CLEAR_LINE : ASSERT_LINE ); + eepromdev_set_cs_line(device, (data & 0x04000000) ? CLEAR_LINE : ASSERT_LINE ); // clock line asserted: write latch or select next bit to read - eeprom_set_clock_line((data & 0x02000000) ? ASSERT_LINE : CLEAR_LINE ); + eepromdev_set_clock_line(device, (data & 0x02000000) ? ASSERT_LINE : CLEAR_LINE ); } } @@ -507,7 +507,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_CUSTOM(eeprom_bit_r, NULL) // CHECK! + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit) // CHECK! PORT_START("PL1_1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A ) PORT_PLAYER(1) @@ -667,7 +667,7 @@ static ADDRESS_MAP_START( tmmjprd_map, ADDRESS_SPACE_PROGRAM, 32 ) AM_RANGE(0x290000, 0x29bfff) AM_RAM AM_BASE(&tmmjprd_spriteram) AM_RANGE(0x29c000, 0x29ffff) AM_RAM_WRITE(tmmjprd_paletteram_dword_w) AM_BASE_GENERIC(paletteram) - AM_RANGE(0x400000, 0x400003) AM_READ(tmmjprd_mux_r) AM_WRITE(tmmjprd_eeprom_write) + AM_RANGE(0x400000, 0x400003) AM_READ(tmmjprd_mux_r) AM_DEVWRITE("eeprom", tmmjprd_eeprom_write) AM_RANGE(0xf00000, 0xffffff) AM_RAM ADDRESS_MAP_END @@ -718,7 +718,7 @@ static MACHINE_DRIVER_START( tmmjprd ) MDRV_CPU_ADD("maincpu",M68EC020,24000000) /* 24 MHz */ MDRV_CPU_PROGRAM_MAP(tmmjprd_map) MDRV_CPU_VBLANK_INT_HACK(tmmjprd_interrupt,2) - MDRV_NVRAM_HANDLER(93C46) + MDRV_EEPROM_93C46_ADD("eeprom") MDRV_GFXDECODE(tmmjprd) diff --git a/src/mame/machine/decoprot.c b/src/mame/machine/decoprot.c index 3f4c18abbae..20aa1be320d 100644 --- a/src/mame/machine/decoprot.c +++ b/src/mame/machine/decoprot.c @@ -71,7 +71,7 @@ ***************************************************************************/ #include "driver.h" -#include "machine/eeprom.h" +#include "machine/eepromdev.h" #include "includes/decoprot.h" #define DECO_PORT(p) (prot_ram[p/2]) @@ -1311,7 +1311,7 @@ static READ16_HANDLER( deco16_146_core_prot_r ) // case 0x582: return input_port_read(space->machine, "IN0"); /* IN0 */ // case 0x672: return input_port_read(space->machine, "IN1"); /* IN1 */ -// case 0x04c: return eeprom_read_bit(); +// case 0x04c: return eepromdev_read_bit(devtag_get_device(space->machine, "eeprom")); case 0x468: val=DECO_PORT(0x570); @@ -1660,7 +1660,7 @@ READ32_HANDLER( deco16_146_fghthist_prot_r ) { case 0x582: return (input_port_read(space->machine, "IN0")<<16) | 0xffff; /* IN0 */ case 0x672: return (input_port_read(space->machine, "IN1")<<16) | 0xffff; /* IN1 */ - case 0x04c: return (eeprom_read_bit()<<16) | 0xffff; + case 0x04c: return (eepromdev_read_bit(devtag_get_device(space->machine, "eeprom"))<<16) | 0xffff; } /* Handle 'one shots' - writing data to an address, then immediately reading it back */ diff --git a/src/mame/machine/kaneko16.c b/src/mame/machine/kaneko16.c index 959599a3b7c..e70e6dc3e74 100644 --- a/src/mame/machine/kaneko16.c +++ b/src/mame/machine/kaneko16.c @@ -16,7 +16,7 @@ Currently none of the MCUs' internal roms are dumped so simulation is used #include "includes/kaneko16.h" #include "kanekotb.h" // TOYBOX MCU trojaning results -#include "machine/eeprom.h" +#include "machine/eepromdev.h" #define CALC3_VERBOSE_OUTPUT 0 @@ -1817,7 +1817,7 @@ static int calc3_decompress_table(running_machine* machine, int tabnum, UINT8* d UINT32 length, size; UINT8 *dat; - dat = (UINT8 *)eeprom_get_data_pointer(&length, &size); + dat = (UINT8 *)eepromdev_get_data_pointer(devtag_get_device(space->machine, "eeprom"), &length, &size); for (i=0;i<0x80;i++) { @@ -2167,7 +2167,7 @@ void calc3_mcu_run(running_machine *machine) UINT32 length, size; UINT8 *dat; - dat = (UINT8 *)eeprom_get_data_pointer(&length, &size); + dat = (UINT8 *)eepromdev_get_data_pointer(devtag_get_device(space->machine, "eeprom"), &length, &size); for (i=0;i<0x80;i++) {