summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/archimedes/podule/midimax.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/archimedes/podule/midimax.cpp')
-rw-r--r--src/devices/bus/archimedes/podule/midimax.cpp49
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")