From 2eac265eac6b4a0966d4ce06f3914456332f5616 Mon Sep 17 00:00:00 2001 From: Dirk Best Date: Sun, 26 Feb 2023 15:04:03 +0100 Subject: pccard_sram: Add 1 MB variant --- src/devices/machine/pccard_sram.cpp | 29 +++++++++++++++++++++++++++++ src/devices/machine/pccard_sram.h | 16 ++++++++++++++++ src/mame/amiga/amiga.cpp | 1 + 3 files changed, 46 insertions(+) diff --git a/src/devices/machine/pccard_sram.cpp b/src/devices/machine/pccard_sram.cpp index dcf7039c80a..59571b865fb 100644 --- a/src/devices/machine/pccard_sram.cpp +++ b/src/devices/machine/pccard_sram.cpp @@ -21,6 +21,7 @@ // DEVICE DEFINITIONS //************************************************************************** +DEFINE_DEVICE_TYPE(PCCARD_SRAM_CENTENNIAL_1M, pccard_centennial_sl01m_15_11194_device, "centennial_sl01m_15_11194", "Centennial 1 MB SRAM") DEFINE_DEVICE_TYPE(PCCARD_SRAM_CENTENNIAL_2M, pccard_centennial_sl02m_15_11194_device, "centennial_sl02m_15_11194", "Centennial 2 MB SRAM") DEFINE_DEVICE_TYPE(PCCARD_SRAM_CENTENNIAL_4M, pccard_centennial_sl04m_15_11194_device, "centennial_sl04m_15_11194", "Centennial 4 MB SRAM") @@ -158,6 +159,7 @@ void pccard_sram_device::card_inserted(bool state) Centennial SRAM + SL01M-15-11194: 1 MB SRAM w/ Write Protect - 150 ns Rechargeable Lithium Battery SL02M-15-11194: 2 MB SRAM w/ Write Protect - 150 ns Rechargeable Lithium Battery SL04M-15-11194: 4 MB SRAM w/ Write Protect - 150 ns Rechargeable Lithium Battery @@ -233,6 +235,33 @@ void pccard_centennial_sram_device::call_unload() card_inserted(false); } +pccard_centennial_sl01m_15_11194_device::pccard_centennial_sl01m_15_11194_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + pccard_centennial_sram_device(mconfig, PCCARD_SRAM_CENTENNIAL_1M, tag, owner, clock) +{ + m_memory_space_config = address_space_config("memory", ENDIANNESS_LITTLE, 16, 20, 0, address_map_constructor(FUNC(pccard_centennial_sl01m_15_11194_device::memory_map), this)); + m_attribute_space_config = address_space_config("attribute", ENDIANNESS_LITTLE, 16, 14, 0, address_map_constructor(FUNC(pccard_centennial_sl01m_15_11194_device::attribute_map), this)); +} + +void pccard_centennial_sl01m_15_11194_device::memory_map(address_map &map) +{ + map(0x000000, 0x0fffff).ram().share("sram"); +} + +void pccard_centennial_sl01m_15_11194_device::attribute_map(address_map &map) +{ + map(0x00000, 0x03fff).ram().share("eeprom"); +} + +ROM_START( eeprom_01 ) + ROM_REGION(0x2000, "eeprom", 0) + ROM_LOAD("eeprom.bin", 0x0000, 0x2000, BAD_DUMP CRC(2caacff3) SHA1(8141459dccf63a64f4bdf4e2171b0884f2cc390d)) +ROM_END + +const tiny_rom_entry *pccard_centennial_sl01m_15_11194_device::device_rom_region() const +{ + return ROM_NAME( eeprom_01 ); +} + pccard_centennial_sl02m_15_11194_device::pccard_centennial_sl02m_15_11194_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : pccard_centennial_sram_device(mconfig, PCCARD_SRAM_CENTENNIAL_2M, tag, owner, clock) { diff --git a/src/devices/machine/pccard_sram.h b/src/devices/machine/pccard_sram.h index 4cc6caac627..fb800b858f1 100644 --- a/src/devices/machine/pccard_sram.h +++ b/src/devices/machine/pccard_sram.h @@ -87,6 +87,21 @@ private: required_memory_region m_eeprom_default; }; +class pccard_centennial_sl01m_15_11194_device : public pccard_centennial_sram_device +{ +public: + // construction/destruction + pccard_centennial_sl01m_15_11194_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); + +protected: + // device_t overrides + virtual const tiny_rom_entry *device_rom_region() const override; + +private: + void memory_map(address_map &map); + void attribute_map(address_map &map); +}; + class pccard_centennial_sl02m_15_11194_device : public pccard_centennial_sram_device { public: @@ -118,6 +133,7 @@ private: }; // device type definition +DECLARE_DEVICE_TYPE(PCCARD_SRAM_CENTENNIAL_1M, pccard_centennial_sl01m_15_11194_device) DECLARE_DEVICE_TYPE(PCCARD_SRAM_CENTENNIAL_2M, pccard_centennial_sl02m_15_11194_device) DECLARE_DEVICE_TYPE(PCCARD_SRAM_CENTENNIAL_4M, pccard_centennial_sl04m_15_11194_device) diff --git a/src/mame/amiga/amiga.cpp b/src/mame/amiga/amiga.cpp index a27eba59a03..c3f02ff6020 100644 --- a/src/mame/amiga/amiga.cpp +++ b/src/mame/amiga/amiga.cpp @@ -1624,6 +1624,7 @@ static void amiga_floppies(device_slot_interface &device) static void pcmcia_devices(device_slot_interface &device) { + device.option_add("sram_1m", PCCARD_SRAM_CENTENNIAL_1M); device.option_add("sram_2m", PCCARD_SRAM_CENTENNIAL_2M); device.option_add("sram_4m", PCCARD_SRAM_CENTENNIAL_4M); } -- cgit v1.2.3