summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/diserial.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/diserial.h')
-rw-r--r--src/emu/diserial.h24
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())
{