void nes_miracle_device::tra_callback() // Tx send bit { uint8_t bit = transmit_register_get_data_bit(); // send this to midi out m_midiout->write_txd(bit); }
void mos6551_device::tra_callback() { if (m_write_txd.isnull()) transmit_register_send_bit(); else m_write_txd(transmit_register_get_data_bit()); }
void ym3802_device::transmit_clk() { if(m_reg[REG_TCR] & 0x01) // Tx Enable { if(!m_tx_fifo.empty()) { if (is_transmit_register_empty()) { transmit_register_setup(m_tx_fifo.front()); // start to send first byte in FIFO m_tx_fifo.pop(); // and remove it from the FIFO if(m_tx_fifo.empty()) set_irq(IRQ_FIFOTX_EMPTY); } } /* if diserial has bits to send, make them so */ if (!is_transmit_register_empty()) { uint8_t data = transmit_register_get_data_bit(); m_tx_busy = true; m_txd_handler(data); } if (m_tx_fifo.empty() && is_transmit_register_empty()) m_tx_busy = false; } }
void serial_keyboard_device::tra_callback() { m_rbit = transmit_register_get_data_bit(); if(m_slot) m_owner->out_rx(m_rbit); else m_out_tx_func(m_rbit); }
void i8251_device::transmit_clock() { m_txc_count++; if (m_txc_count != m_br_factor) return; m_txc_count = 0; if (is_transmit_register_empty()) { if ((m_status & I8251_STATUS_TX_READY) == 0 && (is_tx_enabled() || (m_flags & I8251_DELAYED_TX_EN) != 0)) start_tx(); else m_status |= I8251_STATUS_TX_EMPTY; update_tx_ready(); update_tx_empty(); } /* if diserial has bits to send, make them so */ if (!is_transmit_register_empty()) { uint8_t data = transmit_register_get_data_bit(); m_txd_handler(data); } #if 0 /* hunt mode? */ /* after each bit has been shifted in, it is compared against the current sync byte */ if (BIT(m_command, 7)) { /* data matches sync byte? */ if (m_data == m_sync_bytes[m_sync_byte_offset]) { /* sync byte matches */ /* update for next sync byte? */ m_sync_byte_offset++; /* do all sync bytes match? */ if (m_sync_byte_offset == m_sync_byte_count) { /* ent hunt mode */ m_command &= ~(1<<7); } } else { /* if there is no match, reset */ m_sync_byte_offset = 0; } } #endif }
void zx8302_device::tra_callback() { switch (m_tcr & MODE_MASK) { case MODE_SER1: m_out_txd1_func(transmit_register_get_data_bit()); break; case MODE_SER2: m_out_txd2_func(transmit_register_get_data_bit()); break; case MODE_MDV: // TODO break; case MODE_NET: m_out_netout_func(transmit_register_get_data_bit()); break; } }
void z80dart_channel::tra_callback() { if (!(m_wr[5] & WR5_TX_ENABLE)) { // transmit mark m_out_txd_func(1); } else if (m_wr[5] & WR5_SEND_BREAK) { // transmit break m_out_txd_func(0); } else if (!is_transmit_register_empty()) { // transmit data m_out_txd_func(transmit_register_get_data_bit()); } }
void px4_state::tra_callback() { if (ART_TX_ENABLED) { if (ART_BREAK) { // transmit break txd_w(0); } else { // transmit data txd_w(transmit_register_get_data_bit()); } } else { // transmit mark txd_w(1); } }
inline void im6402_device::transmit() { if (is_transmit_register_empty() && !m_tbre) { transmit_register_setup(m_tbr); set_tbre(ASSERT_LINE); set_tre(CLEAR_LINE); } if (!is_transmit_register_empty()) { int bit = transmit_register_get_data_bit(); m_out_tro_func(bit); serial_connection_out(); if (is_transmit_register_empty()) { set_tre(ASSERT_LINE); } } }
//------------------------------------------------- // tra_callback - //------------------------------------------------- void z80sio_channel::tra_callback() { if (!(m_wr5 & WR5_TX_ENABLE)) { LOG("%s() \"%s \"Channel %c transmit mark 1 m_wr5:%02x\n", FUNCNAME, m_owner->tag(), 'A' + m_index, m_wr5); // transmit mark if (m_index == z80sio_device::CHANNEL_A) m_uart->m_out_txda_cb(1); else m_uart->m_out_txdb_cb(1); } else if (m_wr5 & WR5_SEND_BREAK) { LOG("%s() \"%s \"Channel %c send break 1 m_wr5:%02x\n", FUNCNAME, m_owner->tag(), 'A' + m_index, m_wr5); // transmit break if (m_index == z80sio_device::CHANNEL_A) m_uart->m_out_txda_cb(0); else m_uart->m_out_txdb_cb(0); } else if (!is_transmit_register_empty()) { int db = transmit_register_get_data_bit(); LOG("%s() \"%s \"Channel %c transmit data bit %d m_wr5:%02x\n", FUNCNAME, m_owner->tag(), 'A' + m_index, db, m_wr5); // transmit data if (m_index == z80sio_device::CHANNEL_A) m_uart->m_out_txda_cb(db); else m_uart->m_out_txdb_cb(db); } else { LOG("%s() \"%s \"Channel %c Failed to transmit m_wr5:%02x\n", FUNCNAME, m_owner->tag(), 'A' + m_index, m_wr5); logerror("%s \"%s \"Channel %c Failed to transmit\n", FUNCNAME, m_owner->tag(), 'A' + m_index); } }
void midiin_device::tra_callback() { int bit = transmit_register_get_data_bit(); m_input_cb(bit); }
void midi_keyboard_device::tra_callback() { m_out_tx_func(transmit_register_get_data_bit()); }
void lk201_device::tra_callback() { m_tx_handler(transmit_register_get_data_bit()); }
void sb_device::tra_callback() // Tx send bit { int bit = transmit_register_get_data_bit(); m_mdout->write_txd(bit); }
void apollo_kbd_device::tra_callback() // Tx send bit { int bit = transmit_register_get_data_bit(); m_tx_w(bit); }
void esqpanel_device::tra_callback() // Tx send bit { m_write_tx(transmit_register_get_data_bit()); }
void graph_link_hle_device::tra_callback() { m_serial_port->write_txd(transmit_register_get_data_bit()); }
void mc6852_device::tra_callback() { m_write_tx_data(transmit_register_get_data_bit()); }
void esqpanel_device::tra_callback() // Tx send bit { int bit = transmit_register_get_data_bit(); m_out_tx_func(bit); }
void i8251_device::transmit_clock() { m_txc_count++; if (m_txc_count == m_br_factor) m_txc_count = 0; else return; /* transmit enabled? */ if (m_command & (1<<0)) { /* do we have a character to send? */ if ((m_status & I8251_STATUS_TX_READY)==0) { /* is diserial ready for it? */ if (is_transmit_register_empty()) { /* set it up */ transmit_register_setup(m_data); /* i8251 transmit reg now empty */ m_status |=I8251_STATUS_TX_EMPTY; /* ready for next transmit */ m_status |=I8251_STATUS_TX_READY; update_tx_empty(); update_tx_ready(); } } /* if diserial has bits to send, make them so */ if (!is_transmit_register_empty()) { UINT8 data = transmit_register_get_data_bit(); m_tx_busy = true; m_txd_handler(data); } // is transmitter totally done? if ((m_status & I8251_STATUS_TX_READY) && is_transmit_register_empty()) { m_tx_busy = false; if (m_disable_tx_pending) { LOG(("Applying pending disable\n")); m_disable_tx_pending = false; m_command &= ~(1<<0); m_txd_handler(1); update_tx_ready(); } } } #if 0 /* hunt mode? */ /* after each bit has been shifted in, it is compared against the current sync byte */ if (m_command & (1<<7)) { /* data matches sync byte? */ if (m_data == m_sync_bytes[m_sync_byte_offset]) { /* sync byte matches */ /* update for next sync byte? */ m_sync_byte_offset++; /* do all sync bytes match? */ if (m_sync_byte_offset == m_sync_byte_count) { /* ent hunt mode */ m_command &=~(1<<7); } } else { /* if there is no match, reset */ m_sync_byte_offset = 0; } } #endif }
void mc2661_device::tra_callback() { m_write_txd(transmit_register_get_data_bit()); }
void tms5501_device::tra_callback() { m_write_xmt(transmit_register_get_data_bit()); }
void im6402_device::tra_callback() { m_write_tro(transmit_register_get_data_bit()); }
void serial_terminal_device::tra_callback() { output_rxd(transmit_register_get_data_bit()); }
void i8251_device::transmit_clock() { /* transmit enable? */ if (m_command & (1<<0)) { /* transmit register full? */ if ((m_status & I8251_STATUS_TX_READY)==0) { /* if transmit reg is empty */ if (is_transmit_register_empty()) { /* set it up */ transmit_register_setup(m_data); /* i8251 transmit reg now empty */ m_status |=I8251_STATUS_TX_EMPTY; /* ready for next transmit */ m_status |=I8251_STATUS_TX_READY; update_tx_empty(); update_tx_ready(); } } /* if transmit is not empty... transmit data */ if (!is_transmit_register_empty()) { UINT8 data = transmit_register_get_data_bit(); // logerror("I8251\n"); //transmit_register_send_bit(); m_out_txd_func(data); m_connection_state &=~SERIAL_STATE_TX_DATA; m_connection_state|=(data<<5); serial_connection_out(); } } #if 0 /* hunt mode? */ /* after each bit has been shifted in, it is compared against the current sync byte */ if (m_command & (1<<7)) { /* data matches sync byte? */ if (m_data == m_sync_bytes[m_sync_byte_offset]) { /* sync byte matches */ /* update for next sync byte? */ m_sync_byte_offset++; /* do all sync bytes match? */ if (m_sync_byte_offset == m_sync_byte_count) { /* ent hunt mode */ m_command &=~(1<<7); } } else { /* if there is no match, reset */ m_sync_byte_offset = 0; } } #endif }
void jvc_xvd701_device::tra_callback() { output_rxd(transmit_register_get_data_bit()); }
void mc68901_device::tra_callback() { m_out_so_cb(transmit_register_get_data_bit()); }
void null_modem_device::tra_callback() { output_rxd(transmit_register_get_data_bit()); }
void apricot_keyboard_hle_device::tra_callback() { m_host->in_w(transmit_register_get_data_bit()); }