diff options
Diffstat (limited to 'src/emu/diserial.h')
-rw-r--r-- | src/emu/diserial.h | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/src/emu/diserial.h b/src/emu/diserial.h index 7d7717c5158..eac3599e68a 100644 --- a/src/emu/diserial.h +++ b/src/emu/diserial.h @@ -76,10 +76,10 @@ public: device_serial_interface(const machine_config &mconfig, device_t &device); virtual ~device_serial_interface(); - DECLARE_WRITE_LINE_MEMBER(rx_w); - DECLARE_WRITE_LINE_MEMBER(tx_clock_w); - DECLARE_WRITE_LINE_MEMBER(rx_clock_w); - DECLARE_WRITE_LINE_MEMBER(clock_w); + void rx_w(int state); + void tx_clock_w(int state); + void rx_clock_w(int state); + void clock_w(int state); protected: void set_data_frame(int start_bit_count, int data_bit_count, parity_t parity, stop_bits_t stop_bits); @@ -103,8 +103,6 @@ protected: void transmit_register_setup(u8 data_byte); u8 transmit_register_get_data_bit(); - u8 serial_helper_get_parity(u8 data) { return m_serial_parity_table[data]; } - bool is_receive_register_full() const { return m_rcv_flags & RECEIVE_REGISTER_FULL; } bool is_transmit_register_empty() const { return m_tra_flags & TRANSMIT_REGISTER_EMPTY; } bool is_receive_register_synchronized() const { return m_rcv_flags & RECEIVE_REGISTER_SYNCHRONISED; } @@ -132,8 +130,6 @@ private: TIMER_CALLBACK_MEMBER(rcv_clock) { rx_clock_w(!m_rcv_clock_state); } TIMER_CALLBACK_MEMBER(tra_clock) { tx_clock_w(!m_tra_clock_state); } - u8 m_serial_parity_table[256]; - // Data frame // number of start bits int m_df_start_bit_count; @@ -141,8 +137,10 @@ private: u8 m_df_word_length; // parity state u8 m_df_parity; - // number of stop bits + // number of TX stop bits u8 m_df_stop_bit_count; + // min. number of RX stop bits + u8 m_df_min_rx_stop_bit_count; // Receive register /* data */ @@ -201,8 +199,8 @@ protected: virtual void tra_complete() override { assert(!m_empty || (m_head == m_tail)); - assert(m_head < ARRAY_LENGTH(m_fifo)); - assert(m_tail < ARRAY_LENGTH(m_fifo)); + assert(m_head < std::size(m_fifo)); + assert(m_tail < std::size(m_fifo)); if (!m_empty) { @@ -227,8 +225,8 @@ protected: void transmit_byte(u8 byte) { assert(!m_empty || (m_head == m_tail)); - assert(m_head < ARRAY_LENGTH(m_fifo)); - assert(m_tail < ARRAY_LENGTH(m_fifo)); + assert(m_head < std::size(m_fifo)); + assert(m_tail < std::size(m_fifo)); if (m_empty && is_transmit_register_empty()) { |