diff options
Diffstat (limited to 'src/devices/bus/spectrum/exp.cpp')
-rw-r--r-- | src/devices/bus/spectrum/exp.cpp | 63 |
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); } |