summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2019-02-01 17:27:47 -0500
committer AJR <ajrhacker@users.noreply.github.com>2019-02-01 17:27:47 -0500
commite6a5262830db93645c69104d349d6399b4feefe4 (patch)
treedd29f1cbaac92961e6d30380bf16c28ec8d7810e
parent75146fd159f63b96c338ed8db7405b8bca048821 (diff)
cardinal: Add serial keyboard (nw)
-rw-r--r--src/mame/drivers/cardinal.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/mame/drivers/cardinal.cpp b/src/mame/drivers/cardinal.cpp
index 3600503160d..36d553e1545 100644
--- a/src/mame/drivers/cardinal.cpp
+++ b/src/mame/drivers/cardinal.cpp
@@ -73,7 +73,7 @@ u32 cardinal_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, c
u8 cardinal_state::p1_r()
{
- return 0x9f | (m_eeprom->do_read() << 5) | (m_rs232->cts_r() << 6);
+ return 0x9f | (m_eeprom->do_read() << 5) | (0 /*m_rs232->cts_r()*/ << 6);
}
void cardinal_state::p1_w(u8 data)
@@ -110,8 +110,17 @@ void cardinal_state::ext_map(address_map &map)
static INPUT_PORTS_START(cardinal)
+ PORT_START("P3")
+ PORT_DIPNAME(0x10, 0x00, "Keyboard Baud Rate")
+ PORT_DIPSETTING(0x10, "300")
+ PORT_DIPSETTING(0x00, "600")
+ PORT_BIT(0xef, IP_ACTIVE_LOW, IPT_UNUSED)
INPUT_PORTS_END
+static DEVICE_INPUT_DEFAULTS_START(keyboard)
+ DEVICE_INPUT_DEFAULTS("RS232_TXBAUD", 0xff, RS232_BAUD_600)
+DEVICE_INPUT_DEFAULTS_END
+
void cardinal_state::cardinal(machine_config &config)
{
@@ -120,11 +129,13 @@ void cardinal_state::cardinal(machine_config &config)
maincpu.set_addrmap(AS_IO, &cardinal_state::ext_map);
maincpu.port_in_cb<1>().set(FUNC(cardinal_state::p1_r));
maincpu.port_out_cb<1>().set(FUNC(cardinal_state::p1_w));
+ maincpu.port_in_cb<3>().set_ioport("P3");
EEPROM_93C06_16BIT(config, m_eeprom);
//CRT9028_000(config, m_vtlc, 10.92_MHz_XTAL);
//m_vtlc->set_screen("screen");
+ //m_vtlc->vsync_callback().set_inputline("maincpu", MCS51_INT0_LINE);
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_raw(10.92_MHz_XTAL, 700, 0, 560, 260, 0, 240);
@@ -134,6 +145,10 @@ void cardinal_state::cardinal(machine_config &config)
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.05);
RS232_PORT(config, m_rs232, default_rs232_devices, nullptr);
+
+ rs232_port_device &kb(RS232_PORT(config, "kb", default_rs232_devices, "keyboard"));
+ kb.set_option_device_input_defaults("keyboard", DEVICE_INPUT_DEFAULTS_NAME(keyboard));
+ kb.rxd_handler().set_inputline("maincpu", MCS51_INT1_LINE).invert();
}