diff options
Diffstat (limited to 'src/devices/bus/archimedes/podule/midimax.cpp')
-rw-r--r-- | src/devices/bus/archimedes/podule/midimax.cpp | 49 |
1 files changed, 46 insertions, 3 deletions
diff --git a/src/devices/bus/archimedes/podule/midimax.cpp b/src/devices/bus/archimedes/podule/midimax.cpp index c9215fee4d9..b8a43a2bfae 100644 --- a/src/devices/bus/archimedes/podule/midimax.cpp +++ b/src/devices/bus/archimedes/podule/midimax.cpp @@ -16,6 +16,8 @@ namespace { +// ======================> arc_midimax_device + class arc_midimax_device : public device_t, public device_archimedes_podule_interface @@ -25,6 +27,8 @@ public: arc_midimax_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); protected: + arc_midimax_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -43,6 +47,20 @@ private: }; +// ======================> arc_midimax2_device + +class arc_midimax2_device : public arc_midimax_device +{ +public: + // construction/destruction + arc_midimax2_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + +protected: + // optional information overrides + virtual const tiny_rom_entry *device_rom_region() const override; +}; + + void arc_midimax_device::ioc_map(address_map &map) { map(0x0000, 0x1fff).lr8(NAME([this](offs_t offset) { return m_podule_rom->base()[offset | ((m_rom_page << 11) & 0xf800)]; })).umask32(0x000000ff); @@ -57,7 +75,16 @@ void arc_midimax_device::ioc_map(address_map &map) ROM_START( midimax ) ROM_REGION(0x10000, "podule_rom", 0) - ROM_LOAD("midimax.rom", 0x0000, 0x10000, CRC(62d8a431) SHA1(8c291082d9e8a8533a4f3b59da857813aa357ecb)) + ROM_SYSTEM_BIOS(0, "106", "1.06 (26 Mar 1995)") + ROMX_LOAD("midimax-1.06.rom", 0x0000, 0x10000, CRC(62d8a431) SHA1(8c291082d9e8a8533a4f3b59da857813aa357ecb), ROM_BIOS(0)) + ROM_SYSTEM_BIOS(1, "105", "1.05 (26 Apr 1994)") + ROMX_LOAD("midimax-1.05.rom", 0x0000, 0x10000, CRC(2340a077) SHA1(8cba82ed214246b9fb55e24e87e4629231490465), ROM_BIOS(1)) +ROM_END + +ROM_START( midimax2 ) + ROM_REGION(0x10000, "podule_rom", 0) + ROM_SYSTEM_BIOS(0, "201", "2.01 (10-Dec-97)") + ROMX_LOAD("midimax-2.01.rom", 0x0000, 0x10000, CRC(b112bdb2) SHA1(d713bf8661542009defadb08cc6096af94efce3e), ROM_BIOS(0)) ROM_END const tiny_rom_entry *arc_midimax_device::device_rom_region() const @@ -65,6 +92,11 @@ const tiny_rom_entry *arc_midimax_device::device_rom_region() const return ROM_NAME( midimax ); } +const tiny_rom_entry *arc_midimax2_device::device_rom_region() const +{ + return ROM_NAME( midimax2 ); +} + //------------------------------------------------- // device_add_mconfig - add device configuration @@ -95,14 +127,24 @@ void arc_midimax_device::device_add_mconfig(machine_config &config) // arc_midimax_device - constructor //------------------------------------------------- -arc_midimax_device::arc_midimax_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : device_t(mconfig, ARC_MIDIMAX, tag, owner, clock) +arc_midimax_device::arc_midimax_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) + : device_t(mconfig, type, tag, owner, clock) , device_archimedes_podule_interface(mconfig, *this) , m_podule_rom(*this, "podule_rom") , m_rom_page(0) { } +arc_midimax_device::arc_midimax_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : arc_midimax_device(mconfig, ARC_MIDIMAX, tag, owner, clock) +{ +} + +arc_midimax2_device::arc_midimax2_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : arc_midimax_device(mconfig, ARC_MIDIMAX2, tag, owner, clock) +{ +} + //------------------------------------------------- // device_start - device-specific startup @@ -130,3 +172,4 @@ void arc_midimax_device::device_reset() //************************************************************************** DEFINE_DEVICE_TYPE_PRIVATE(ARC_MIDIMAX, device_archimedes_podule_interface, arc_midimax_device, "arc_midimax", "Wild Vision MidiMax") +DEFINE_DEVICE_TYPE_PRIVATE(ARC_MIDIMAX2, device_archimedes_podule_interface, arc_midimax2_device, "arc_midimax2", "Wild Vision MidiMax II") |