diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/devices/machine/i8251.cpp | 21 | ||||
-rw-r--r-- | src/devices/machine/i8251.h | 8 | ||||
-rw-r--r-- | src/emu/diserial.cpp | 1 |
3 files changed, 24 insertions, 6 deletions
diff --git a/src/devices/machine/i8251.cpp b/src/devices/machine/i8251.cpp index 048e4bc9947..6760e5de2d7 100644 --- a/src/devices/machine/i8251.cpp +++ b/src/devices/machine/i8251.cpp @@ -186,6 +186,7 @@ void i8251_device::check_for_tx_start() -------------------------------------------------*/ void i8251_device::start_tx() { + LOG("start_tx %02x\n", m_tx_data); transmit_register_setup(m_tx_data); m_status &= ~I8251_STATUS_TX_EMPTY; m_status |= I8251_STATUS_TX_READY; @@ -340,7 +341,7 @@ void i8251_device::device_reset() control_w -------------------------------------------------*/ -WRITE8_MEMBER(i8251_device::command_w) +void i8251_device::command_w(uint8_t data) { /* command */ LOG("I8251: Command byte\n"); @@ -419,7 +420,7 @@ WRITE8_MEMBER(i8251_device::command_w) update_tx_empty(); } -WRITE8_MEMBER(i8251_device::mode_w) +void i8251_device::mode_w(uint8_t data) { LOG("I8251: Mode byte = %X\n", data); @@ -597,12 +598,12 @@ WRITE8_MEMBER(i8251_device::control_w) } else { - mode_w(space, offset, data); + mode_w(data); } } else { - command_w(space, offset, data); + command_w(data); } } @@ -660,6 +661,8 @@ WRITE8_MEMBER(i8251_device::data_w) void i8251_device::receive_character(uint8_t ch) { + LOG("receive_character %02x\n", ch); + m_rx_data = ch; /* char has not been read and another has arrived! */ @@ -735,3 +738,13 @@ WRITE_LINE_MEMBER(i8251_device::write_txc) transmit_clock(); } } + +WRITE8_MEMBER(v53_scu_device::command_w) +{ + command_w(data); +} + +WRITE8_MEMBER(v53_scu_device::mode_w) +{ + mode_w(data); +} diff --git a/src/devices/machine/i8251.h b/src/devices/machine/i8251.h index 82659caed11..cf966ac2693 100644 --- a/src/devices/machine/i8251.h +++ b/src/devices/machine/i8251.h @@ -57,8 +57,6 @@ public: DECLARE_WRITE8_MEMBER(data_w); DECLARE_READ8_MEMBER(status_r); DECLARE_WRITE8_MEMBER(control_w); - DECLARE_WRITE8_MEMBER(command_w); - DECLARE_WRITE8_MEMBER(mode_w); DECLARE_WRITE_LINE_MEMBER( write_rxd ); DECLARE_WRITE_LINE_MEMBER( write_cts ); @@ -96,6 +94,9 @@ protected: virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + void command_w(uint8_t data); + void mode_w(uint8_t data); + void update_rx_ready(); void update_tx_ready(); void update_tx_empty(); @@ -156,6 +157,9 @@ class v53_scu_device : public i8251_device public: // construction/destruction v53_scu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + DECLARE_WRITE8_MEMBER(command_w); + DECLARE_WRITE8_MEMBER(mode_w); }; diff --git a/src/emu/diserial.cpp b/src/emu/diserial.cpp index 9fae3f494f8..76209dfb35a 100644 --- a/src/emu/diserial.cpp +++ b/src/emu/diserial.cpp @@ -441,6 +441,7 @@ u8 device_serial_interface::transmit_register_get_data_bit() bit = (m_tra_register_data>>(m_tra_bit_count-1-m_tra_bit_count_transmitted))&1; m_tra_bit_count_transmitted++; + //device().logerror("%d bits transmitted\n", m_tra_bit_count_transmitted); /* have all bits of this stream formatted byte been sent? */ if (m_tra_bit_count_transmitted==m_tra_bit_count) |