mirror of
https://github.com/holub/mame
synced 2025-05-23 06:08:48 +03:00
metro, model3, gunbustr converted to eepromdev.
This commit is contained in:
parent
f98d17e45b
commit
3336a38bb8
@ -48,7 +48,7 @@
|
|||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "video/taitoic.h"
|
#include "video/taitoic.h"
|
||||||
#include "audio/taitosnd.h"
|
#include "audio/taitosnd.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromdev.h"
|
||||||
#include "sound/es5506.h"
|
#include "sound/es5506.h"
|
||||||
#include "includes/taito_f3.h"
|
#include "includes/taito_f3.h"
|
||||||
#include "audio/taito_en.h"
|
#include "audio/taito_en.h"
|
||||||
@ -115,9 +115,10 @@ popmessage(t);
|
|||||||
|
|
||||||
if (ACCESSING_BITS_0_7)
|
if (ACCESSING_BITS_0_7)
|
||||||
{
|
{
|
||||||
eeprom_set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
|
const device_config *device = devtag_get_device(space->machine, "eeprom");
|
||||||
eeprom_write_bit(data & 0x40);
|
eepromdev_set_clock_line(device, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
|
||||||
eeprom_set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
|
eepromdev_write_bit(device, data & 0x40);
|
||||||
|
eepromdev_set_cs_line(device, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@ -203,7 +204,7 @@ static INPUT_PORTS_START( gunbustr )
|
|||||||
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)
|
PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit)
|
||||||
PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
|
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( 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)
|
PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
|
||||||
@ -324,19 +325,6 @@ static const eeprom_interface gunbustr_eeprom_interface =
|
|||||||
"0100110000", /* lock command */
|
"0100110000", /* lock command */
|
||||||
};
|
};
|
||||||
|
|
||||||
static NVRAM_HANDLER( gunbustr )
|
|
||||||
{
|
|
||||||
if (read_or_write)
|
|
||||||
eeprom_save(file);
|
|
||||||
else {
|
|
||||||
eeprom_init(machine, &gunbustr_eeprom_interface);
|
|
||||||
if (file)
|
|
||||||
eeprom_load(file);
|
|
||||||
else
|
|
||||||
eeprom_set_data(default_eeprom,128); /* Default the gun setup values */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static MACHINE_DRIVER_START( gunbustr )
|
static MACHINE_DRIVER_START( gunbustr )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
@ -344,7 +332,7 @@ static MACHINE_DRIVER_START( gunbustr )
|
|||||||
MDRV_CPU_PROGRAM_MAP(gunbustr_map)
|
MDRV_CPU_PROGRAM_MAP(gunbustr_map)
|
||||||
MDRV_CPU_VBLANK_INT("screen", gunbustr_interrupt) /* VBL */
|
MDRV_CPU_VBLANK_INT("screen", gunbustr_interrupt) /* VBL */
|
||||||
|
|
||||||
MDRV_NVRAM_HANDLER(gunbustr)
|
MDRV_EEPROM_ADD("eeprom", gunbustr_eeprom_interface)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("screen", RASTER)
|
MDRV_SCREEN_ADD("screen", RASTER)
|
||||||
@ -395,6 +383,9 @@ ROM_START( gunbustr )
|
|||||||
ROM_RELOAD(0x400000,0x100000)
|
ROM_RELOAD(0x400000,0x100000)
|
||||||
ROM_LOAD16_BYTE( "d27-09.bin", 0x200000, 0x100000, CRC(3e060304) SHA1(c4da4a94c168c3a454409d758c3ed45babbab170) ) // CA, CB
|
ROM_LOAD16_BYTE( "d27-09.bin", 0x200000, 0x100000, CRC(3e060304) SHA1(c4da4a94c168c3a454409d758c3ed45babbab170) ) // CA, CB
|
||||||
ROM_LOAD16_BYTE( "d27-10.bin", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std-
|
ROM_LOAD16_BYTE( "d27-10.bin", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std-
|
||||||
|
|
||||||
|
ROM_REGION16_BE( 0x80, "eeprom", 0 )
|
||||||
|
ROM_LOAD16_WORD( "eeprom-gunbustr.bin", 0x0000, 0x0080, CRC(af7dc017) SHA1(5ff106cccd2679025cdd81fbc133d32148e2818c) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
static READ32_HANDLER( main_cycle_r )
|
static READ32_HANDLER( main_cycle_r )
|
||||||
|
@ -86,7 +86,7 @@ driver modified by Eisuke Watanabe
|
|||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "cpu/h83002/h8.h"
|
#include "cpu/h83002/h8.h"
|
||||||
#include "cpu/upd7810/upd7810.h"
|
#include "cpu/upd7810/upd7810.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromdev.h"
|
||||||
#include "video/konicdev.h"
|
#include "video/konicdev.h"
|
||||||
#include "sound/2610intf.h"
|
#include "sound/2610intf.h"
|
||||||
#include "sound/2151intf.h"
|
#include "sound/2151intf.h"
|
||||||
@ -1269,23 +1269,23 @@ static READ16_HANDLER( gakusai_input_r )
|
|||||||
return 0xffff;
|
return 0xffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
static READ16_HANDLER( gakusai_eeprom_r )
|
static READ16_DEVICE_HANDLER( gakusai_eeprom_r )
|
||||||
{
|
{
|
||||||
return eeprom_read_bit() & 1;
|
return eepromdev_read_bit(device) & 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static WRITE16_HANDLER( gakusai_eeprom_w )
|
static WRITE16_DEVICE_HANDLER( gakusai_eeprom_w )
|
||||||
{
|
{
|
||||||
if (ACCESSING_BITS_0_7)
|
if (ACCESSING_BITS_0_7)
|
||||||
{
|
{
|
||||||
// latch the bit
|
// latch the bit
|
||||||
eeprom_write_bit(data & 0x01);
|
eepromdev_write_bit(device, data & 0x01);
|
||||||
|
|
||||||
// reset line asserted: reset.
|
// reset line asserted: reset.
|
||||||
eeprom_set_cs_line((data & 0x04) ? CLEAR_LINE : ASSERT_LINE );
|
eepromdev_set_cs_line(device, (data & 0x04) ? CLEAR_LINE : ASSERT_LINE );
|
||||||
|
|
||||||
// clock line asserted: write latch or select next bit to read
|
// 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 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1317,7 +1317,7 @@ static ADDRESS_MAP_START( gakusai_map, ADDRESS_SPACE_PROGRAM, 16 )
|
|||||||
AM_RANGE(0x500000, 0x500001) AM_DEVWRITE("oki", gakusai_oki_bank_lo_w) // Sound
|
AM_RANGE(0x500000, 0x500001) AM_DEVWRITE("oki", gakusai_oki_bank_lo_w) // Sound
|
||||||
AM_RANGE(0x600000, 0x600003) AM_DEVWRITE8("ymsnd", ym2413_w, 0x00ff)
|
AM_RANGE(0x600000, 0x600003) AM_DEVWRITE8("ymsnd", ym2413_w, 0x00ff)
|
||||||
AM_RANGE(0x700000, 0x700001) AM_DEVREADWRITE8("oki", okim6295_r,okim6295_w, 0x00ff) // Sound
|
AM_RANGE(0x700000, 0x700001) AM_DEVREADWRITE8("oki", okim6295_r,okim6295_w, 0x00ff) // Sound
|
||||||
AM_RANGE(0xc00000, 0xc00001) AM_READWRITE(gakusai_eeprom_r,gakusai_eeprom_w) // EEPROM
|
AM_RANGE(0xc00000, 0xc00001) AM_DEVREADWRITE("eeprom", gakusai_eeprom_r,gakusai_eeprom_w) // EEPROM
|
||||||
AM_RANGE(0xd00000, 0xd00001) AM_DEVWRITE("oki", gakusai_oki_bank_hi_w)
|
AM_RANGE(0xd00000, 0xd00001) AM_DEVWRITE("oki", gakusai_oki_bank_hi_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
@ -1356,7 +1356,7 @@ static ADDRESS_MAP_START( gakusai2_map, ADDRESS_SPACE_PROGRAM, 16 )
|
|||||||
AM_RANGE(0xa00000, 0xa00001) AM_DEVWRITE("oki", gakusai_oki_bank_hi_w)
|
AM_RANGE(0xa00000, 0xa00001) AM_DEVWRITE("oki", gakusai_oki_bank_hi_w)
|
||||||
AM_RANGE(0xb00000, 0xb00001) AM_DEVREADWRITE8("oki", okim6295_r,okim6295_w, 0x00ff) // Sound
|
AM_RANGE(0xb00000, 0xb00001) AM_DEVREADWRITE8("oki", okim6295_r,okim6295_w, 0x00ff) // Sound
|
||||||
AM_RANGE(0xc00000, 0xc00003) AM_DEVWRITE8("ymsnd", ym2413_w, 0x00ff)
|
AM_RANGE(0xc00000, 0xc00003) AM_DEVWRITE8("ymsnd", ym2413_w, 0x00ff)
|
||||||
AM_RANGE(0xe00000, 0xe00001) AM_READWRITE(gakusai_eeprom_r,gakusai_eeprom_w) // EEPROM
|
AM_RANGE(0xe00000, 0xe00001) AM_DEVREADWRITE("eeprom", gakusai_eeprom_r,gakusai_eeprom_w) // EEPROM
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
|
||||||
@ -1364,34 +1364,34 @@ ADDRESS_MAP_END
|
|||||||
Mahjong Doukyuusei Special
|
Mahjong Doukyuusei Special
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
static READ16_HANDLER( dokyusp_eeprom_r )
|
static READ16_DEVICE_HANDLER( dokyusp_eeprom_r )
|
||||||
{
|
{
|
||||||
// clock line asserted: write latch or select next bit to read
|
// clock line asserted: write latch or select next bit to read
|
||||||
eeprom_set_clock_line(CLEAR_LINE);
|
eepromdev_set_clock_line(device, CLEAR_LINE);
|
||||||
eeprom_set_clock_line(ASSERT_LINE);
|
eepromdev_set_clock_line(device, ASSERT_LINE);
|
||||||
|
|
||||||
return eeprom_read_bit() & 1;
|
return eepromdev_read_bit(device) & 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static WRITE16_HANDLER( dokyusp_eeprom_bit_w )
|
static WRITE16_DEVICE_HANDLER( dokyusp_eeprom_bit_w )
|
||||||
{
|
{
|
||||||
if (ACCESSING_BITS_0_7)
|
if (ACCESSING_BITS_0_7)
|
||||||
{
|
{
|
||||||
// latch the bit
|
// latch the bit
|
||||||
eeprom_write_bit(data & 0x01);
|
eepromdev_write_bit(device, data & 0x01);
|
||||||
|
|
||||||
// clock line asserted: write latch or select next bit to read
|
// clock line asserted: write latch or select next bit to read
|
||||||
eeprom_set_clock_line(CLEAR_LINE);
|
eepromdev_set_clock_line(device, CLEAR_LINE);
|
||||||
eeprom_set_clock_line(ASSERT_LINE);
|
eepromdev_set_clock_line(device, ASSERT_LINE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static WRITE16_HANDLER( dokyusp_eeprom_reset_w )
|
static WRITE16_DEVICE_HANDLER( dokyusp_eeprom_reset_w )
|
||||||
{
|
{
|
||||||
if (ACCESSING_BITS_0_7)
|
if (ACCESSING_BITS_0_7)
|
||||||
{
|
{
|
||||||
// reset line asserted: reset.
|
// 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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1423,8 +1423,8 @@ static ADDRESS_MAP_START( dokyusp_map, ADDRESS_SPACE_PROGRAM, 16 )
|
|||||||
AM_RANGE(0x500000, 0x500001) AM_DEVWRITE("oki", gakusai_oki_bank_lo_w) // Sound
|
AM_RANGE(0x500000, 0x500001) AM_DEVWRITE("oki", gakusai_oki_bank_lo_w) // Sound
|
||||||
AM_RANGE(0x600000, 0x600003) AM_DEVWRITE8("ymsnd", ym2413_w, 0x00ff)
|
AM_RANGE(0x600000, 0x600003) AM_DEVWRITE8("ymsnd", ym2413_w, 0x00ff)
|
||||||
AM_RANGE(0x700000, 0x700001) AM_DEVREADWRITE8("oki", okim6295_r,okim6295_w, 0x00ff) // Sound
|
AM_RANGE(0x700000, 0x700001) AM_DEVREADWRITE8("oki", okim6295_r,okim6295_w, 0x00ff) // Sound
|
||||||
AM_RANGE(0xc00000, 0xc00001) AM_WRITE(dokyusp_eeprom_reset_w) // EEPROM
|
AM_RANGE(0xc00000, 0xc00001) AM_DEVWRITE("eeprom", dokyusp_eeprom_reset_w) // EEPROM
|
||||||
AM_RANGE(0xd00000, 0xd00001) AM_READWRITE(dokyusp_eeprom_r,dokyusp_eeprom_bit_w) // EEPROM
|
AM_RANGE(0xd00000, 0xd00001) AM_DEVREADWRITE("eeprom", dokyusp_eeprom_r,dokyusp_eeprom_bit_w) // EEPROM
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
|
||||||
@ -3847,20 +3847,6 @@ static MACHINE_DRIVER_START( dokyusei )
|
|||||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.90)
|
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.90)
|
||||||
MACHINE_DRIVER_END
|
MACHINE_DRIVER_END
|
||||||
|
|
||||||
static NVRAM_HANDLER( dokyusp )
|
|
||||||
{
|
|
||||||
static const UINT8 def_data[] = {0x00,0xe0};
|
|
||||||
|
|
||||||
if (read_or_write)
|
|
||||||
eeprom_save(file);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
eeprom_init(machine, &eeprom_interface_93C46);
|
|
||||||
if (file) eeprom_load(file);
|
|
||||||
else eeprom_set_data(def_data,sizeof(def_data)/sizeof(def_data[0]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static MACHINE_DRIVER_START( dokyusp )
|
static MACHINE_DRIVER_START( dokyusp )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
@ -3869,7 +3855,7 @@ static MACHINE_DRIVER_START( dokyusp )
|
|||||||
MDRV_CPU_VBLANK_INT("screen", gakusai_interrupt)
|
MDRV_CPU_VBLANK_INT("screen", gakusai_interrupt)
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(metro)
|
MDRV_MACHINE_RESET(metro)
|
||||||
MDRV_NVRAM_HANDLER(dokyusp)
|
MDRV_EEPROM_93C46_ADD("eeprom")
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("screen", RASTER)
|
MDRV_SCREEN_ADD("screen", RASTER)
|
||||||
@ -3907,7 +3893,7 @@ static MACHINE_DRIVER_START( gakusai )
|
|||||||
MDRV_CPU_VBLANK_INT("screen", gakusai_interrupt)
|
MDRV_CPU_VBLANK_INT("screen", gakusai_interrupt)
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(metro)
|
MDRV_MACHINE_RESET(metro)
|
||||||
MDRV_NVRAM_HANDLER(93C46)
|
MDRV_EEPROM_93C46_ADD("eeprom")
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("screen", RASTER)
|
MDRV_SCREEN_ADD("screen", RASTER)
|
||||||
@ -3945,7 +3931,7 @@ static MACHINE_DRIVER_START( gakusai2 )
|
|||||||
MDRV_CPU_VBLANK_INT("screen", gakusai_interrupt)
|
MDRV_CPU_VBLANK_INT("screen", gakusai_interrupt)
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(metro)
|
MDRV_MACHINE_RESET(metro)
|
||||||
MDRV_NVRAM_HANDLER(93C46)
|
MDRV_EEPROM_93C46_ADD("eeprom")
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("screen", RASTER)
|
MDRV_SCREEN_ADD("screen", RASTER)
|
||||||
@ -5331,6 +5317,9 @@ ROM_START( dokyusp )
|
|||||||
|
|
||||||
ROM_REGION( 0x200000, "oki", 0 ) /* Samples */
|
ROM_REGION( 0x200000, "oki", 0 ) /* Samples */
|
||||||
ROM_LOAD( "7.bin", 0x000000, 0x200000, CRC(763985e1) SHA1(395d925b79922de5060a3f59de99fbcc9bd40fad) )
|
ROM_LOAD( "7.bin", 0x000000, 0x200000, CRC(763985e1) SHA1(395d925b79922de5060a3f59de99fbcc9bd40fad) )
|
||||||
|
|
||||||
|
ROM_REGION16_BE( 0x80, "eeprom", 0 )
|
||||||
|
ROM_LOAD16_WORD( "eeprom-dokyusp.bin", 0x0000, 0x0080, CRC(cf159485) SHA1(f8e9c89e1b7c8bcd77ae5f55e334f79285f602a8) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
|
@ -601,7 +601,7 @@ ALL VROM ROMs are 16M MASK
|
|||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "deprecat.h"
|
#include "deprecat.h"
|
||||||
#include "cpu/powerpc/ppc.h"
|
#include "cpu/powerpc/ppc.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromdev.h"
|
||||||
#include "machine/53c810.h"
|
#include "machine/53c810.h"
|
||||||
#include "sound/scsp.h"
|
#include "sound/scsp.h"
|
||||||
#include "includes/model3.h"
|
#include "includes/model3.h"
|
||||||
@ -1164,33 +1164,8 @@ static const eeprom_interface eeprom_intf =
|
|||||||
5 /* reset_delay (Lost World needs this, very similar to wbeachvl in playmark.c) */
|
5 /* reset_delay (Lost World needs this, very similar to wbeachvl in playmark.c) */
|
||||||
};
|
};
|
||||||
|
|
||||||
static void eeprom_handler(running_machine *machine, mame_file *file, int read_or_write)
|
|
||||||
{
|
|
||||||
if (read_or_write)
|
|
||||||
eeprom_save(file);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
eeprom_init(machine, &eeprom_intf);
|
|
||||||
if (file) eeprom_load(file);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static NVRAM_HANDLER( model3 )
|
static NVRAM_HANDLER( model3 )
|
||||||
{
|
{
|
||||||
const char *name = machine->gamedrv->name;
|
|
||||||
if( mame_stricmp(name, "lostwsga") == 0 ||
|
|
||||||
mame_stricmp(name, "dirtdvls") == 0 ||
|
|
||||||
mame_stricmp(name, "dirtdvlsa") == 0 ||
|
|
||||||
mame_stricmp(name, "lemans24") == 0 ||
|
|
||||||
mame_stricmp(name, "magtruck") == 0 ||
|
|
||||||
mame_stricmp(name, "von2") == 0 ||
|
|
||||||
mame_stricmp(name, "von254g") == 0)
|
|
||||||
{
|
|
||||||
eeprom_handler(machine, file, read_or_write);
|
|
||||||
} else {
|
|
||||||
NVRAM_HANDLER_CALL(93C46);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (read_or_write)
|
if (read_or_write)
|
||||||
{
|
{
|
||||||
mame_fwrite(file, model3_backup, 0x1ffff);
|
mame_fwrite(file, model3_backup, 0x1ffff);
|
||||||
@ -1394,10 +1369,11 @@ static WRITE64_HANDLER( model3_ctrl_w )
|
|||||||
case 0:
|
case 0:
|
||||||
if (ACCESSING_BITS_56_63)
|
if (ACCESSING_BITS_56_63)
|
||||||
{
|
{
|
||||||
|
const device_config *device = devtag_get_device(space->machine, "eeprom");
|
||||||
int reg = (data >> 56) & 0xff;
|
int reg = (data >> 56) & 0xff;
|
||||||
eeprom_write_bit((reg & 0x20) ? 1 : 0);
|
eepromdev_write_bit(device, (reg & 0x20) ? 1 : 0);
|
||||||
eeprom_set_clock_line((reg & 0x80) ? ASSERT_LINE : CLEAR_LINE);
|
eepromdev_set_clock_line(device, (reg & 0x80) ? ASSERT_LINE : CLEAR_LINE);
|
||||||
eeprom_set_cs_line((reg & 0x40) ? CLEAR_LINE : ASSERT_LINE);
|
eepromdev_set_cs_line(device, (reg & 0x40) ? CLEAR_LINE : ASSERT_LINE);
|
||||||
model3_controls_bank = reg & 0xff;
|
model3_controls_bank = reg & 0xff;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@ -1851,7 +1827,7 @@ static INPUT_PORTS_START( common )
|
|||||||
PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
|
|
||||||
PORT_START("IN1")
|
PORT_START("IN1")
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)
|
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit)
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service Button B") PORT_CODE(KEYCODE_8)
|
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( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Test Button B") PORT_CODE(KEYCODE_7)
|
||||||
PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNUSED )
|
PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
@ -2086,7 +2062,7 @@ static INPUT_PORTS_START( skichamp )
|
|||||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) /* Select 2 */
|
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) /* Select 2 */
|
||||||
|
|
||||||
PORT_START("IN1")
|
PORT_START("IN1")
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)
|
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit)
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service Button B") PORT_CODE(KEYCODE_8)
|
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( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Test Button B") PORT_CODE(KEYCODE_7)
|
||||||
PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNUSED )
|
PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
@ -4744,6 +4720,8 @@ static MACHINE_DRIVER_START( model3_10 )
|
|||||||
|
|
||||||
MDRV_MACHINE_START(model3_10)
|
MDRV_MACHINE_START(model3_10)
|
||||||
MDRV_MACHINE_RESET(model3_10)
|
MDRV_MACHINE_RESET(model3_10)
|
||||||
|
|
||||||
|
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
||||||
MDRV_NVRAM_HANDLER(model3)
|
MDRV_NVRAM_HANDLER(model3)
|
||||||
|
|
||||||
|
|
||||||
@ -4782,6 +4760,8 @@ static MACHINE_DRIVER_START( model3_15 )
|
|||||||
|
|
||||||
MDRV_MACHINE_START(model3_15)
|
MDRV_MACHINE_START(model3_15)
|
||||||
MDRV_MACHINE_RESET(model3_15)
|
MDRV_MACHINE_RESET(model3_15)
|
||||||
|
|
||||||
|
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
||||||
MDRV_NVRAM_HANDLER(model3)
|
MDRV_NVRAM_HANDLER(model3)
|
||||||
|
|
||||||
|
|
||||||
@ -4820,6 +4800,8 @@ static MACHINE_DRIVER_START( model3_20 )
|
|||||||
|
|
||||||
MDRV_MACHINE_START(model3_20)
|
MDRV_MACHINE_START(model3_20)
|
||||||
MDRV_MACHINE_RESET(model3_20)
|
MDRV_MACHINE_RESET(model3_20)
|
||||||
|
|
||||||
|
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
||||||
MDRV_NVRAM_HANDLER(model3)
|
MDRV_NVRAM_HANDLER(model3)
|
||||||
|
|
||||||
|
|
||||||
@ -4858,6 +4840,8 @@ static MACHINE_DRIVER_START( model3_21 )
|
|||||||
|
|
||||||
MDRV_MACHINE_START(model3_21)
|
MDRV_MACHINE_START(model3_21)
|
||||||
MDRV_MACHINE_RESET(model3_21)
|
MDRV_MACHINE_RESET(model3_21)
|
||||||
|
|
||||||
|
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
||||||
MDRV_NVRAM_HANDLER(model3)
|
MDRV_NVRAM_HANDLER(model3)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user