summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/spectrum/exp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/spectrum/exp.cpp')
-rw-r--r--src/devices/bus/spectrum/exp.cpp63
1 files changed, 47 insertions, 16 deletions
diff --git a/src/devices/bus/spectrum/exp.cpp b/src/devices/bus/spectrum/exp.cpp
index 73e1d4a3a9a..850b9f88384 100644
--- a/src/devices/bus/spectrum/exp.cpp
+++ b/src/devices/bus/spectrum/exp.cpp
@@ -43,7 +43,6 @@ device_spectrum_expansion_interface::device_spectrum_expansion_interface(const m
spectrum_expansion_slot_device::spectrum_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, SPECTRUM_EXPANSION_SLOT, tag, owner, clock),
device_slot_interface(mconfig, *this),
- m_io(nullptr),
m_card(nullptr),
m_irq_handler(*this),
m_nmi_handler(*this)
@@ -87,46 +86,57 @@ void spectrum_expansion_slot_device::device_reset()
}
//-------------------------------------------------
-// set_io_space - set address space we are attached to
+// romcs
+//-------------------------------------------------
+
+READ_LINE_MEMBER(spectrum_expansion_slot_device::romcs)
+{
+ if (m_card)
+ return m_card->romcs();
+ else
+ return 0;
+}
+
+//-------------------------------------------------
+// fetch_r
//-------------------------------------------------
-void spectrum_expansion_slot_device::set_io_space(address_space *io)
+void spectrum_expansion_slot_device::opcode_fetch(offs_t offset)
{
- m_io = io;
+ if (m_card)
+ m_card->opcode_fetch(offset);
}
//-------------------------------------------------
-// port_fe_r
+// iorq_r
//-------------------------------------------------
-READ8_MEMBER(spectrum_expansion_slot_device::port_fe_r)
+uint8_t spectrum_expansion_slot_device::iorq_r(offs_t offset)
{
if (m_card)
- return m_card->port_fe_r(space, offset);
+ return m_card->iorq_r(offset);
else
return 0xff;
}
//-------------------------------------------------
-// romcs
+// iorq_w
//-------------------------------------------------
-READ_LINE_MEMBER(spectrum_expansion_slot_device::romcs)
+void spectrum_expansion_slot_device::iorq_w(offs_t offset, uint8_t data)
{
if (m_card)
- return m_card->romcs();
- else
- return 0;
+ m_card->iorq_w(offset, data);
}
//-------------------------------------------------
// mreq_r
//-------------------------------------------------
-READ8_MEMBER(spectrum_expansion_slot_device::mreq_r)
+uint8_t spectrum_expansion_slot_device::mreq_r(offs_t offset)
{
if (m_card)
- return m_card->mreq_r(space, offset);
+ return m_card->mreq_r(offset);
else
return 0xff;
}
@@ -135,10 +145,10 @@ READ8_MEMBER(spectrum_expansion_slot_device::mreq_r)
// mreq_w
//-------------------------------------------------
-WRITE8_MEMBER(spectrum_expansion_slot_device::mreq_w)
+void spectrum_expansion_slot_device::mreq_w(offs_t offset, uint8_t data)
{
if (m_card)
- m_card->mreq_w(space, offset, data);
+ m_card->mreq_w(offset, data);
}
@@ -148,14 +158,20 @@ WRITE8_MEMBER(spectrum_expansion_slot_device::mreq_w)
// slot devices
+#include "beta.h"
+//#include "disciple.h"
#include "intf1.h"
#include "intf2.h"
#include "fuller.h"
#include "kempjoy.h"
#include "melodik.h"
+#include "mface.h"
#include "mikroplus.h"
+#include "opus.h"
#include "plus2test.h"
+//#include "plusd.h"
#include "protek.h"
+#include "specdrum.h"
#include "uslot.h"
#include "usource.h"
#include "uspeech.h"
@@ -163,13 +179,21 @@ WRITE8_MEMBER(spectrum_expansion_slot_device::mreq_w)
void spectrum_expansion_devices(device_slot_interface &device)
{
+ device.option_add("beta128", SPECTRUM_BETA128);
+ //device.option_add("disciple", SPECTRUM_DISCIPLE);
device.option_add("intf1", SPECTRUM_INTF1);
device.option_add("intf2", SPECTRUM_INTF2);
device.option_add("fuller", SPECTRUM_FULLER);
device.option_add("kempjoy", SPECTRUM_KEMPJOY);
device.option_add("melodik", SPECTRUM_MELODIK);
+ device.option_add("mface1", SPECTRUM_MFACE1);
+ device.option_add("mface128", SPECTRUM_MFACE128);
device.option_add("mikroplus", SPECTRUM_MIKROPLUS);
+ device.option_add("mprint", SPECTRUM_MPRINT);
+ device.option_add("opus", SPECTRUM_OPUS);
+ //device.option_add("plusd", SPECTRUM_PLUSD);
device.option_add("protek", SPECTRUM_PROTEK);
+ device.option_add("specdrum", SPECTRUM_SPECDRUM);
device.option_add("uslot", SPECTRUM_USLOT);
device.option_add("usource", SPECTRUM_USOURCE);
device.option_add("uspeech", SPECTRUM_USPEECH);
@@ -177,15 +201,22 @@ void spectrum_expansion_devices(device_slot_interface &device)
void spec128_expansion_devices(device_slot_interface &device)
{
+ device.option_add("beta128", SPECTRUM_BETA128);
+ //device.option_add("disciple", SPECTRUM_DISCIPLE);
device.option_add("intf1", SPECTRUM_INTF1);
device.option_add("intf2", SPECTRUM_INTF2);
device.option_add("kempjoy", SPECTRUM_KEMPJOY);
+ device.option_add("mface128", SPECTRUM_MFACE128);
device.option_add("mikroplus", SPECTRUM_MIKROPLUS);
+ device.option_add("mprint", SPECTRUM_MPRINT);
+ device.option_add("opus", SPECTRUM_OPUS);
device.option_add("plus2test", SPECTRUM_PLUS2TEST);
device.option_add("protek", SPECTRUM_PROTEK);
+ device.option_add("specdrum", SPECTRUM_SPECDRUM);
}
void specpls3_expansion_devices(device_slot_interface &device)
{
+ device.option_add("mface3", SPECTRUM_MFACE3);
}