diff options
Diffstat (limited to 'src/devices/bus/ss50/mps2.cpp')
-rw-r--r-- | src/devices/bus/ss50/mps2.cpp | 82 |
1 files changed, 42 insertions, 40 deletions
diff --git a/src/devices/bus/ss50/mps2.cpp b/src/devices/bus/ss50/mps2.cpp index 7211aea1e3e..ce49fa911fb 100644 --- a/src/devices/bus/ss50/mps2.cpp +++ b/src/devices/bus/ss50/mps2.cpp @@ -28,28 +28,28 @@ public: : device_t(mconfig, SS50_MPS2, tag, owner, clock) , ss50_card_interface(mconfig, *this) , m_acia_upper(*this, "acia_upper") - , m_tx_rate_upper_jumper(*this, "tx_baud_upper") - , m_rx_rate_upper_jumper(*this, "rx_baud_upper") + , m_tx_rate_upper_jumper(*this, "TX_BAUD_UPPER") + , m_rx_rate_upper_jumper(*this, "RX_BAUD_UPPER") , m_acia_lower(*this, "acia_lower") - , m_tx_rate_lower_jumper(*this, "tx_baud_lower") - , m_rx_rate_lower_jumper(*this, "rx_baud_lower") + , m_tx_rate_lower_jumper(*this, "TX_BAUD_LOWER") + , m_rx_rate_lower_jumper(*this, "RX_BAUD_LOWER") { } protected: // device-specific overrides - virtual ioport_constructor device_input_ports() const override; - virtual void device_add_mconfig(machine_config &config) override; + virtual ioport_constructor device_input_ports() const override ATTR_COLD; + virtual void device_add_mconfig(machine_config &config) override ATTR_COLD; virtual void device_start() override { } // interface-specific overrides virtual u8 register_read(offs_t offset) override; virtual void register_write(offs_t offset, u8 data) override; - virtual DECLARE_WRITE_LINE_MEMBER(f110_w) override; - virtual DECLARE_WRITE_LINE_MEMBER(f150_9600_w) override; - virtual DECLARE_WRITE_LINE_MEMBER(f300_w) override; - virtual DECLARE_WRITE_LINE_MEMBER(f600_4800_w) override; - virtual DECLARE_WRITE_LINE_MEMBER(f600_1200_w) override; + virtual void f110_w(int state) override; + virtual void f150_9600_w(int state) override; + virtual void f300_w(int state) override; + virtual void f600_4800_w(int state) override; + virtual void f600_1200_w(int state) override; private: required_device<acia6850_device> m_acia_upper; @@ -62,37 +62,37 @@ private: static INPUT_PORTS_START( mps2 ) - PORT_START("tx_baud_upper") + PORT_START("TX_BAUD_UPPER") PORT_DIPNAME(0x1f, 0x1d, "Upper TX Baud Rate") - PORT_DIPSETTING(0x1d, "9600 / 38400") - PORT_DIPSETTING(0x17, "4800 / 19200") - PORT_DIPSETTING(0x0f, "1200 / 4800") - PORT_DIPSETTING(0x1b, "300 / 1200") PORT_DIPSETTING(0x1e, "110 / 440") + PORT_DIPSETTING(0x1b, "300 / 1200") + PORT_DIPSETTING(0x0f, "1200 / 4800") + PORT_DIPSETTING(0x17, "4800 / 19200") + PORT_DIPSETTING(0x1d, "9600 / 38400") - PORT_START("rx_baud_upper") + PORT_START("RX_BAUD_UPPER") PORT_DIPNAME(0x1f, 0x1d, "Upper RX Baud Rate") - PORT_DIPSETTING(0x1d, "9600 / 38400") - PORT_DIPSETTING(0x17, "4800 / 19200") - PORT_DIPSETTING(0x0f, "1200 / 4800") - PORT_DIPSETTING(0x1b, "300 / 1200") PORT_DIPSETTING(0x1e, "110 / 440") + PORT_DIPSETTING(0x1b, "300 / 1200") + PORT_DIPSETTING(0x0f, "1200 / 4800") + PORT_DIPSETTING(0x17, "4800 / 19200") + PORT_DIPSETTING(0x1d, "9600 / 38400") - PORT_START("tx_baud_lower") + PORT_START("TX_BAUD_LOWER") PORT_DIPNAME(0x1f, 0x1d, "Lower TX Baud Rate") - PORT_DIPSETTING(0x1d, "9600 / 38400") - PORT_DIPSETTING(0x17, "4800 / 19200") - PORT_DIPSETTING(0x0f, "1200 / 4800") - PORT_DIPSETTING(0x1b, "300 / 1200") PORT_DIPSETTING(0x1e, "110 / 440") + PORT_DIPSETTING(0x1b, "300 / 1200") + PORT_DIPSETTING(0x0f, "1200 / 4800") + PORT_DIPSETTING(0x17, "4800 / 19200") + PORT_DIPSETTING(0x1d, "9600 / 38400") - PORT_START("rx_baud_lower") + PORT_START("RX_BAUD_LOWER") PORT_DIPNAME(0x1f, 0x1d, "Lower RX Baud Rate") - PORT_DIPSETTING(0x1d, "9600 / 38400") - PORT_DIPSETTING(0x17, "4800 / 19200") - PORT_DIPSETTING(0x0f, "1200 / 4800") - PORT_DIPSETTING(0x1b, "300 / 1200") PORT_DIPSETTING(0x1e, "110 / 440") + PORT_DIPSETTING(0x1b, "300 / 1200") + PORT_DIPSETTING(0x0f, "1200 / 4800") + PORT_DIPSETTING(0x17, "4800 / 19200") + PORT_DIPSETTING(0x1d, "9600 / 38400") INPUT_PORTS_END @@ -110,7 +110,6 @@ ioport_constructor ss50_mps2_device::device_input_ports() const static DEVICE_INPUT_DEFAULTS_START( terminal_upper ) DEVICE_INPUT_DEFAULTS("RS232_RXBAUD", 0xff, RS232_BAUD_9600) DEVICE_INPUT_DEFAULTS("RS232_TXBAUD", 0xff, RS232_BAUD_9600) - DEVICE_INPUT_DEFAULTS("RS232_STARTBITS", 0xff, RS232_STARTBITS_1) DEVICE_INPUT_DEFAULTS("RS232_DATABITS", 0xff, RS232_DATABITS_8) DEVICE_INPUT_DEFAULTS("RS232_PARITY", 0xff, RS232_PARITY_NONE) DEVICE_INPUT_DEFAULTS("RS232_STOPBITS", 0xff, RS232_STOPBITS_1) @@ -119,7 +118,6 @@ DEVICE_INPUT_DEFAULTS_END static DEVICE_INPUT_DEFAULTS_START( terminal_lower ) DEVICE_INPUT_DEFAULTS("RS232_RXBAUD", 0xff, RS232_BAUD_9600) DEVICE_INPUT_DEFAULTS("RS232_TXBAUD", 0xff, RS232_BAUD_9600) - DEVICE_INPUT_DEFAULTS("RS232_STARTBITS", 0xff, RS232_STARTBITS_1) DEVICE_INPUT_DEFAULTS("RS232_DATABITS", 0xff, RS232_DATABITS_8) DEVICE_INPUT_DEFAULTS("RS232_PARITY", 0xff, RS232_PARITY_NONE) DEVICE_INPUT_DEFAULTS("RS232_STOPBITS", 0xff, RS232_STOPBITS_1) @@ -134,20 +132,24 @@ void ss50_mps2_device::device_add_mconfig(machine_config &config) { ACIA6850(config, m_acia_upper, 0); m_acia_upper->txd_handler().set("rs232_upper", FUNC(rs232_port_device::write_txd)); - //m_acia_upper->rts_handler().set(FUNC(ss50_mps2_device::reader_control_w)); + m_acia_upper->rts_handler().set("rs232_upper", FUNC(rs232_port_device::write_rts)); m_acia_upper->irq_handler().set("irq", FUNC(input_merger_device::in_w<0>)); rs232_port_device &rs232_upper(RS232_PORT(config, "rs232_upper", default_rs232_devices, "terminal")); rs232_upper.rxd_handler().set(m_acia_upper, FUNC(acia6850_device::write_rxd)); + rs232_upper.cts_handler().set(m_acia_upper, FUNC(acia6850_device::write_cts)); + rs232_upper.dcd_handler().set(m_acia_upper, FUNC(acia6850_device::write_dcd)); rs232_upper.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal_upper)); ACIA6850(config, m_acia_lower, 0); m_acia_lower->txd_handler().set("rs232_lower", FUNC(rs232_port_device::write_txd)); - //m_acia_lower->rts_handler().set(FUNC(ss50_mps2_device::reader_control_w)); + m_acia_lower->rts_handler().set("rs232_lower", FUNC(rs232_port_device::write_rts)); m_acia_lower->irq_handler().set("irq", FUNC(input_merger_device::in_w<1>)); rs232_port_device &rs232_lower(RS232_PORT(config, "rs232_lower", default_rs232_devices, "terminal")); rs232_lower.rxd_handler().set(m_acia_lower, FUNC(acia6850_device::write_rxd)); + rs232_lower.cts_handler().set(m_acia_lower, FUNC(acia6850_device::write_cts)); + rs232_lower.dcd_handler().set(m_acia_lower, FUNC(acia6850_device::write_dcd)); rs232_lower.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal_lower)); INPUT_MERGER_ANY_HIGH(config, "irq").output_handler().set(FUNC(ss50_mps2_device::write_irq)); @@ -193,7 +195,7 @@ void ss50_mps2_device::register_write(offs_t offset, u8 data) m_acia_lower->write((offset - 4) & 1, data); } -WRITE_LINE_MEMBER(ss50_mps2_device::f110_w) +void ss50_mps2_device::f110_w(int state) { if (!BIT(m_tx_rate_upper_jumper->read(), 0)) m_acia_upper->write_txc(state); @@ -205,7 +207,7 @@ WRITE_LINE_MEMBER(ss50_mps2_device::f110_w) m_acia_lower->write_rxc(state); } -WRITE_LINE_MEMBER(ss50_mps2_device::f150_9600_w) +void ss50_mps2_device::f150_9600_w(int state) { if (!BIT(m_tx_rate_upper_jumper->read(), 1)) m_acia_upper->write_txc(state); @@ -217,7 +219,7 @@ WRITE_LINE_MEMBER(ss50_mps2_device::f150_9600_w) m_acia_lower->write_rxc(state); } -WRITE_LINE_MEMBER(ss50_mps2_device::f300_w) +void ss50_mps2_device::f300_w(int state) { if (!BIT(m_tx_rate_upper_jumper->read(), 2)) m_acia_upper->write_txc(state); @@ -229,7 +231,7 @@ WRITE_LINE_MEMBER(ss50_mps2_device::f300_w) m_acia_lower->write_rxc(state); } -WRITE_LINE_MEMBER(ss50_mps2_device::f600_4800_w) +void ss50_mps2_device::f600_4800_w(int state) { if (!BIT(m_tx_rate_upper_jumper->read(), 3)) m_acia_upper->write_txc(state); @@ -241,7 +243,7 @@ WRITE_LINE_MEMBER(ss50_mps2_device::f600_4800_w) m_acia_lower->write_rxc(state); } -WRITE_LINE_MEMBER(ss50_mps2_device::f600_1200_w) +void ss50_mps2_device::f600_1200_w(int state) { if (!BIT(m_tx_rate_upper_jumper->read(), 4)) m_acia_upper->write_txc(state); |