trunk/src/emu/machine/n68681.c
| r20230 | r20231 | |
| 375 | 375 | } |
| 376 | 376 | } |
| 377 | 377 | |
| 378 | | m_chanA->write_chan_reg(1, data); |
| 379 | | m_chanB->write_chan_reg(1, data); |
| 378 | m_chanA->ACR_updated(); |
| 379 | m_chanB->ACR_updated(); |
| 380 | 380 | m_chanA->update_interrupts(); // need to add ACR checking for IP delta ints |
| 381 | 381 | m_chanB->update_interrupts(); |
| 382 | 382 | update_interrupts(); |
| r20230 | r20231 | |
| 540 | 540 | { |
| 541 | 541 | if ( rx_fifo_num >= MC68681_RX_FIFO_SIZE ) |
| 542 | 542 | { |
| 543 | | LOG(( "68681: FIFO overflow\n" )); |
| 543 | logerror("68681: FIFO overflow\n"); |
| 544 | 544 | SR |= STATUS_OVERRUN_ERROR; |
| 545 | 545 | return; |
| 546 | 546 | } |
| r20230 | r20231 | |
| 751 | 751 | CSR = data; |
| 752 | 752 | tx_baud_rate = m_uart->calc_baud(m_ch, data & 0xf); |
| 753 | 753 | rx_baud_rate = m_uart->calc_baud(m_ch, (data>>4) & 0xf); |
| 754 | | // printf("ch %d Tx baud %d Rx baud %d\n", m_ch, tx_baud_rate, rx_baud_rate); |
| 754 | //printf("ch %d CSR %02x Tx baud %d Rx baud %d\n", m_ch, data, tx_baud_rate, rx_baud_rate); |
| 755 | 755 | set_rcv_rate(rx_baud_rate); |
| 756 | 756 | set_tra_rate(tx_baud_rate); |
| 757 | 757 | break; |
| r20230 | r20231 | |
| 834 | 834 | break; |
| 835 | 835 | } |
| 836 | 836 | |
| 837 | | // printf("ch %d MR1 %02x MR2 %02x => %d bits / char, %d stop bits, parity %d\n", m_ch, MR1, MR2, (MR1 & 3)+5, stopbits, parity); |
| 837 | //printf("ch %d MR1 %02x MR2 %02x => %d bits / char, %d stop bits, parity %d\n", m_ch, MR1, MR2, (MR1 & 3)+5, stopbits, parity); |
| 838 | 838 | |
| 839 | 839 | set_data_frame((MR1 & 3)+5, stopbits, parity); |
| 840 | 840 | } |
| r20230 | r20231 | |
| 971 | 971 | |
| 972 | 972 | update_interrupts(); |
| 973 | 973 | }; |
| 974 | |
| 975 | void duart68681_channel::ACR_updated() |
| 976 | { |
| 977 | write_chan_reg(1, CSR); |
| 978 | } |
| 979 | |