diff options
Diffstat (limited to 'src/devices/bus/spectrum/exp.cpp')
-rw-r--r-- | src/devices/bus/spectrum/exp.cpp | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/devices/bus/spectrum/exp.cpp b/src/devices/bus/spectrum/exp.cpp index 51950eb7bb7..90015c8c72a 100644 --- a/src/devices/bus/spectrum/exp.cpp +++ b/src/devices/bus/spectrum/exp.cpp @@ -45,7 +45,8 @@ spectrum_expansion_slot_device::spectrum_expansion_slot_device(const machine_con device_single_card_slot_interface<device_spectrum_expansion_interface>(mconfig, *this), m_card(nullptr), m_irq_handler(*this), - m_nmi_handler(*this) + m_nmi_handler(*this), + m_fb_r_handler(*this, 0xff) { } @@ -57,17 +58,13 @@ spectrum_expansion_slot_device::spectrum_expansion_slot_device(const machine_con void spectrum_expansion_slot_device::device_start() { m_card = get_card_device(); - - // resolve callbacks - m_irq_handler.resolve_safe(); - m_nmi_handler.resolve_safe(); } //------------------------------------------------- // romcs //------------------------------------------------- -READ_LINE_MEMBER(spectrum_expansion_slot_device::romcs) +bool spectrum_expansion_slot_device::romcs() { if (m_card) return m_card->romcs(); @@ -112,7 +109,7 @@ uint8_t spectrum_expansion_slot_device::iorq_r(offs_t offset) if (m_card) return m_card->iorq_r(offset); else - return 0xff; + return offset & 1 ? fb_r() : 0xff; } //------------------------------------------------- @@ -169,6 +166,7 @@ void spectrum_expansion_slot_device::mreq_w(offs_t offset, uint8_t data) #include "mface.h" #include "mgt.h" #include "mikroplus.h" +#include "mpoker.h" #include "opus.h" #include "plus2test.h" #include "protek.h" @@ -176,9 +174,11 @@ void spectrum_expansion_slot_device::mreq_w(offs_t offset, uint8_t data) #include "sixword.h" #include "specdrum.h" #include "speccydos.h" +#include "specmate.h" #include "uslot.h" #include "usource.h" #include "uspeech.h" +#include "vtx5000.h" #include "wafa.h" void spectrum_expansion_devices(device_slot_interface &device) @@ -206,9 +206,14 @@ void spectrum_expansion_devices(device_slot_interface &device) device.option_add("lprint", SPECTRUM_LPRINT); device.option_add("lprint3", SPECTRUM_LPRINT3); device.option_add("melodik", SPECTRUM_MELODIK); + device.option_add("mface1v1", SPECTRUM_MFACE1V1); + device.option_add("mface1v2", SPECTRUM_MFACE1V2); + device.option_add("mface1v3", SPECTRUM_MFACE1V3); device.option_add("mface1", SPECTRUM_MFACE1); + device.option_add("mface128v1", SPECTRUM_MFACE128V1); device.option_add("mface128", SPECTRUM_MFACE128); device.option_add("mikroplus", SPECTRUM_MIKROPLUS); + device.option_add("mpoker", SPECTRUM_MPOKER); device.option_add("mprint", SPECTRUM_MPRINT); device.option_add("opus", SPECTRUM_OPUS); device.option_add("plusd", SPECTRUM_PLUSD); @@ -218,11 +223,13 @@ void spectrum_expansion_devices(device_slot_interface &device) device.option_add("speccydos", SPECTRUM_SPECCYDOS); device.option_add("spdos", SPECTRUM_SPDOS); device.option_add("specdrum", SPECTRUM_SPECDRUM); + device.option_add("specmate", SPECTRUM_SPECMATE); device.option_add("swiftdisc", SPECTRUM_SWIFTDISC); device.option_add("swiftdisc2", SPECTRUM_SWIFTDISC2); device.option_add("uslot", SPECTRUM_USLOT); device.option_add("usource", SPECTRUM_USOURCE); device.option_add("uspeech", SPECTRUM_USPEECH); + device.option_add("vtx5000", SPECTRUM_VTX5000); device.option_add("wafadrive", SPECTRUM_WAFA); } @@ -233,6 +240,7 @@ void spec128_expansion_devices(device_slot_interface &device) device.option_add("intf1", SPECTRUM_INTF1); device.option_add("intf2", SPECTRUM_INTF2); device.option_add("kempjoy", SPECTRUM_KEMPJOY); + device.option_add("mface128v1", SPECTRUM_MFACE128V1); device.option_add("mface128", SPECTRUM_MFACE128); device.option_add("mikroplus", SPECTRUM_MIKROPLUS); device.option_add("mprint", SPECTRUM_MPRINT); @@ -249,6 +257,7 @@ void spec128_expansion_devices(device_slot_interface &device) void specpls3_expansion_devices(device_slot_interface &device) { + device.option_add("kempjoy", SPECTRUM_KEMPJOY); device.option_add("mface3", SPECTRUM_MFACE3); } |