diff options
author | AJR <ajrhacker@users.noreply.github.com> | 2017-08-30 00:17:11 -0400 |
---|---|---|
committer | AJR <ajrhacker@users.noreply.github.com> | 2017-08-30 00:17:11 -0400 |
commit | 50749667bb8b6d0b92d187dffc9dcb0a03907375 (patch) | |
tree | a35ae42fa7fe7aff6f3c823bc5af724c14aca8af /src/mame/drivers/gauntlet.cpp | |
parent | dbae1f4e05cac302e75d3779cf91d9ff8e928f85 (diff) |
Improvements to 28XX parallel EEPROM emulation
- Emulate direct manipulation of /OE line for read/write mode control.
- Special handling for data polling before a write has completed.
- Allow optional configuration of device to lock EEPROM after each write, as often used by Atari.
- Eliminate the Atari EEPROM interface devices, since their special features have been incorporated into the base device. To continue using old NVRAM files, rename them from eeprom_eeprom to eeprom.
Diffstat (limited to 'src/mame/drivers/gauntlet.cpp')
-rw-r--r-- | src/mame/drivers/gauntlet.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/mame/drivers/gauntlet.cpp b/src/mame/drivers/gauntlet.cpp index 781e50ce6ee..5f9c3d843b8 100644 --- a/src/mame/drivers/gauntlet.cpp +++ b/src/mame/drivers/gauntlet.cpp @@ -124,6 +124,7 @@ #include "includes/gauntlet.h" #include "cpu/m68000/m68000.h" #include "cpu/m6502/m6502.h" +#include "machine/eeprompar.h" #include "machine/watchdog.h" #include "sound/tms5220.h" #include "sound/ym2151.h" @@ -279,7 +280,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, gauntlet_state ) /* MBUS */ AM_RANGE(0x800000, 0x801fff) AM_MIRROR(0x2fc000) AM_RAM - AM_RANGE(0x802000, 0x802fff) AM_MIRROR(0x2fc000) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff) + AM_RANGE(0x802000, 0x802fff) AM_MIRROR(0x2fc000) AM_DEVREADWRITE8("eeprom", eeprom_parallel_28xx_device, read, write, 0x00ff) AM_RANGE(0x803000, 0x803001) AM_MIRROR(0x2fcef0) AM_READ_PORT("803000") AM_RANGE(0x803002, 0x803003) AM_MIRROR(0x2fcef0) AM_READ_PORT("803002") AM_RANGE(0x803004, 0x803005) AM_MIRROR(0x2fcef0) AM_READ_PORT("803004") @@ -289,7 +290,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, gauntlet_state ) AM_RANGE(0x803100, 0x803101) AM_MIRROR(0x2fce8e) AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w) AM_RANGE(0x803120, 0x803121) AM_MIRROR(0x2fce8e) AM_DEVWRITE("soundcomm", atari_sound_comm_device, sound_reset_w) AM_RANGE(0x803140, 0x803141) AM_MIRROR(0x2fce8e) AM_WRITE(video_int_ack_w) - AM_RANGE(0x803150, 0x803151) AM_MIRROR(0x2fce8e) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write) + AM_RANGE(0x803150, 0x803151) AM_MIRROR(0x2fce8e) AM_DEVWRITE("eeprom", eeprom_parallel_28xx_device, unlock_write) AM_RANGE(0x803170, 0x803171) AM_MIRROR(0x2fce8e) AM_DEVWRITE8("soundcomm", atari_sound_comm_device, main_command_w, 0x00ff) /* VBUS */ @@ -498,7 +499,8 @@ static MACHINE_CONFIG_START( gauntlet_base ) MCFG_MACHINE_START_OVERRIDE(gauntlet_state,gauntlet) MCFG_MACHINE_RESET_OVERRIDE(gauntlet_state,gauntlet) - MCFG_ATARI_EEPROM_2804_ADD("eeprom") + MCFG_EEPROM_2804_ADD("eeprom") + MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true) MCFG_WATCHDOG_ADD("watchdog") |