diff options
| author | 2025-06-22 22:13:37 +0100 | |
|---|---|---|
| committer | 2025-06-22 22:13:37 +0100 | |
| commit | e7a2e1399394ea885b4b6a9e343efe68c802bc07 (patch) | |
| tree | f9248ca8908f3ca73fae0e0236b6742b738995e3 | |
| parent | 7c0af047c6c408b60122e7f38e45137f35994f1f (diff) | |
psion/workabout.cpp: Added the LIF-PFS socket (with LIF converter).
| -rw-r--r-- | src/mame/psion/workabout.cpp | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/src/mame/psion/workabout.cpp b/src/mame/psion/workabout.cpp index 34aa3d68b6a..a3d63592d7f 100644 --- a/src/mame/psion/workabout.cpp +++ b/src/mame/psion/workabout.cpp @@ -4,24 +4,22 @@ Psion Workabout - TODO: - - expansion LIF ports - ******************************************************************************/ #include "emu.h" + +//#include "bus/psion/exp/slot.h" +#include "bus/psion/sibo/slot.h" #include "machine/nvram.h" #include "machine/psion_asic9.h" #include "machine/psion_ssd.h" #include "machine/ram.h" #include "sound/spkrdev.h" -//#include "bus/psion/exp/slot.h" #include "emupal.h" #include "screen.h" #include "softlist_dev.h" #include "speaker.h" -#include "utf8.h" namespace { @@ -38,6 +36,7 @@ public: , m_keyboard(*this, "COL%u", 0U) , m_speaker(*this, "speaker") , m_ssd(*this, "ssd%u", 1U) + , m_sibo(*this, "sibo") //, m_exp(*this, "exp") { } @@ -59,6 +58,7 @@ private: required_ioport_array<8> m_keyboard; required_device<speaker_sound_device> m_speaker; required_device_array<psion_ssd_device, 2> m_ssd; + required_device<psion_sibo_slot_device> m_sibo; //required_device<psion_exp_slot_device> m_exp; void palette_init(palette_device &palette); @@ -87,7 +87,7 @@ static INPUT_PORTS_START( workabout ) PORT_BIT(0x008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') PORT_BIT(0x010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('^') PORT_CHAR('}') - PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) PORT_NAME(UTF8_DOWN) + PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) PORT_NAME(u8"\u2193") // U+2193 = ↓ PORT_BIT(0x080, IP_ACTIVE_HIGH, IPT_UNUSED) PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC)) PORT_NAME("On/Esc") PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(workabout_state::wakeup), 0) @@ -98,7 +98,7 @@ static INPUT_PORTS_START( workabout ) PORT_BIT(0x008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') PORT_BIT(0x010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) PORT_NAME("Enter") PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_') - PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) PORT_NAME(UTF8_RIGHT) + PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) PORT_NAME(u8"\u2192") // U+2192 = → PORT_BIT(0x180, IP_ACTIVE_HIGH, IPT_UNUSED) PORT_START("COL2") @@ -128,7 +128,7 @@ static INPUT_PORTS_START( workabout ) PORT_BIT(0x008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E') PORT_BIT(0x010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR(0xa3) PORT_CHAR('\\') PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') PORT_CHAR(']') - PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) PORT_NAME(UTF8_UP) + PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) PORT_NAME(u8"\u2191") // U+2191 = ↑ PORT_BIT(0x180, IP_ACTIVE_HIGH, IPT_UNUSED) PORT_START("COL5") @@ -157,7 +157,7 @@ static INPUT_PORTS_START( workabout ) PORT_BIT(0x004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') PORT_BIT(0x008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR(',') PORT_BIT(0x010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') PORT_CHAR('{') - PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) PORT_NAME(UTF8_LEFT) + PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) PORT_NAME(u8"\u2190") // U+2190 = ← PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Backlight") PORT_BIT(0x180, IP_ACTIVE_HIGH, IPT_UNUSED) INPUT_PORTS_END @@ -213,8 +213,8 @@ void workabout_state::workabout(machine_config &config) //m_asic9->data_w<2>().set(m_exp[0], FUNC(psion_exp_slot_device::data_w)); //m_asic9->data_r<3>().set(m_exp[1], FUNC(psion_exp_slot_device::data_r)); // Expansion port B //m_asic9->data_w<3>().set(m_exp[1], FUNC(psion_exp_slot_device::data_w)); - //m_asic9->data_r<4>().set(m_exp[2], FUNC(psion_exp_slot_device::data_r)); // Expansion port C - //m_asic9->data_w<4>().set(m_exp[2], FUNC(psion_exp_slot_device::data_w)); + m_asic9->data_r<4>().set(m_sibo, FUNC(psion_sibo_slot_device::data_r)); // Expansion port C + m_asic9->data_w<4>().set(m_sibo, FUNC(psion_sibo_slot_device::data_w)); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); screen.set_size(240, 100); @@ -235,6 +235,10 @@ void workabout_state::workabout(machine_config &config) PSION_SSD(config, m_ssd[1]); m_ssd[1]->door_cb().set(m_asic9, FUNC(psion_asic9_device::medchng_w)); + // LIF-PFS socket (with LIF converter) + PSION_SIBO_SLOT(config, m_sibo, psion_sibo_devices, nullptr); + m_sibo->int_cb().set(m_asic9, FUNC(psion_asic9_device::sds_int_w)); + //PSION_EXP_SLOT(config, m_exp, psion_exp_devices, nullptr); SOFTWARE_LIST(config, "ssd_list").set_original("psion_ssd").set_filter("WA"); @@ -267,8 +271,8 @@ void workabout_state::psionwamx(machine_config &config) //m_asic9->data_w<2>().set(m_exp[0], FUNC(psion_exp_slot_device::data_w)); //m_asic9->data_r<3>().set(m_exp[1], FUNC(psion_exp_slot_device::data_r)); // Expansion port B //m_asic9->data_w<3>().set(m_exp[1], FUNC(psion_exp_slot_device::data_w)); - //m_asic9->data_r<4>().set(m_exp[2], FUNC(psion_exp_slot_device::data_r)); // Expansion port C - //m_asic9->data_w<4>().set(m_exp[2], FUNC(psion_exp_slot_device::data_w)); + m_asic9->data_r<4>().set(m_sibo, FUNC(psion_sibo_slot_device::data_r)); // Expansion port C + m_asic9->data_w<4>().set(m_sibo, FUNC(psion_sibo_slot_device::data_w)); m_ram->set_default_size("2M"); } |
