From 609f01b540db22fe09a5e7b9b68e6fb65f63f81d Mon Sep 17 00:00:00 2001 From: yz70s Date: Fri, 26 Apr 2019 18:58:51 +0200 Subject: intelfsh.cpp: add sst 49lf020 flash (nw) --- src/devices/machine/intelfsh.cpp | 13 ++++++++++++- src/devices/machine/intelfsh.h | 8 ++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/devices/machine/intelfsh.cpp b/src/devices/machine/intelfsh.cpp index 3ff5d16d12b..982ce825ba0 100644 --- a/src/devices/machine/intelfsh.cpp +++ b/src/devices/machine/intelfsh.cpp @@ -101,6 +101,7 @@ DEFINE_DEVICE_TYPE(PANASONIC_MN63F805MNP, panasonic_mn63f805mnp_device, "panason DEFINE_DEVICE_TYPE(SANYO_LE26FV10N1TS, sanyo_le26fv10n1ts_device, "sanyo_le26fv10n1ts", "Sanyo LE26FV10N1TS Flash") DEFINE_DEVICE_TYPE(SST_28SF040, sst_28sf040_device, "sst_28sf040", "SST 28SF040 Flash") DEFINE_DEVICE_TYPE(SST_39VF020, sst_39vf020_device, "sst_39vf020", "SST 39VF020 Flash") +DEFINE_DEVICE_TYPE(SST_49LF020, sst_49lf020_device, "sst_49lf020", "SST 49LF020 Flash") DEFINE_DEVICE_TYPE(SHARP_LH28F400, sharp_lh28f400_device, "sharp_lh28f400", "Sharp LH28F400 Flash") DEFINE_DEVICE_TYPE(INTEL_E28F008SA, intel_e28f008sa_device, "intel_e28f008sa", "Intel E28F008SA Flash") @@ -239,6 +240,13 @@ intelfsh_device::intelfsh_device(const machine_config &mconfig, device_type type m_device_id = 0xd6; m_sector_is_4k = true; break; + case FLASH_SST_49LF020: + m_bits = 8; + m_size = 0x40000; + m_maker_id = MFG_SST; + m_device_id = 0x61; + m_sector_is_4k = true; + break; case FLASH_SST_39VF400A: m_bits = 16; m_size = 0x80000; @@ -422,6 +430,9 @@ sst_28sf040_device::sst_28sf040_device(const machine_config &mconfig, const char sst_39vf020_device::sst_39vf020_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : intelfsh8_device(mconfig, SST_39VF020, tag, owner, clock, FLASH_SST_39VF020) { } +sst_49lf020_device::sst_49lf020_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : intelfsh8_device(mconfig, SST_49LF020, tag, owner, clock, FLASH_SST_49LF020) { } + sharp_lh28f400_device::sharp_lh28f400_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : intelfsh16_device(mconfig, SHARP_LH28F400, tag, owner, clock, FLASH_SHARP_LH28F400) { } @@ -794,7 +805,7 @@ void intelfsh_device::write_full(uint32_t address, uint32_t data) { m_flash_mode = FM_NORMAL; } - else if( ( address & 0xffff ) == 0x5555 && ( data & 0xff ) == 0xb0 && m_maker_id == 0x62 && m_device_id == 0x13 ) + else if( ( address & 0xffff ) == 0x5555 && ( data & 0xff ) == 0xb0 && m_maker_id == MFG_SANYO && m_device_id == 0x13 ) { m_flash_mode = FM_BANKSELECT; } diff --git a/src/devices/machine/intelfsh.h b/src/devices/machine/intelfsh.h index edaa23d69f6..2a054b8fb53 100644 --- a/src/devices/machine/intelfsh.h +++ b/src/devices/machine/intelfsh.h @@ -37,6 +37,7 @@ public: FLASH_SANYO_LE26FV10N1TS, FLASH_SST_28SF040, FLASH_SST_39VF020, + FLASH_SST_49LF020, FLASH_TMS_29F040, // 16-bit variants @@ -261,6 +262,12 @@ public: sst_39vf020_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); }; +class sst_49lf020_device : public intelfsh8_device +{ +public: + sst_49lf020_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); +}; + class tms_29f040_device : public intelfsh8_device { public: @@ -347,6 +354,7 @@ DECLARE_DEVICE_TYPE(PANASONIC_MN63F805MNP, panasonic_mn63f805mnp_device) DECLARE_DEVICE_TYPE(SANYO_LE26FV10N1TS, sanyo_le26fv10n1ts_device) DECLARE_DEVICE_TYPE(SST_28SF040, sst_28sf040_device) DECLARE_DEVICE_TYPE(SST_39VF020, sst_39vf020_device) +DECLARE_DEVICE_TYPE(SST_49LF020, sst_49lf020_device) DECLARE_DEVICE_TYPE(SHARP_LH28F400, sharp_lh28f400_device) DECLARE_DEVICE_TYPE(INTEL_E28F008SA, intel_e28f008sa_device) -- cgit v1.2.3