Previous 199869 Revisions Next

r20231 Sunday 13th January, 2013 at 00:23:37 UTC by R. Belmont
n68681: fixed trashing of the serial parameters when ACR is updated. [R. Belmont]
[src/emu/machine]n68681.c n68681.h

trunk/src/emu/machine/n68681.c
r20230r20231
375375            }
376376         }
377377
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();
380380         m_chanA->update_interrupts(); // need to add ACR checking for IP delta ints
381381         m_chanB->update_interrupts();
382382         update_interrupts();
r20230r20231
540540   {
541541      if ( rx_fifo_num >= MC68681_RX_FIFO_SIZE )
542542      {
543         LOG(( "68681: FIFO overflow\n" ));
543         logerror("68681: FIFO overflow\n");
544544         SR |= STATUS_OVERRUN_ERROR;
545545         return;
546546      }
r20230r20231
751751      CSR = data;
752752      tx_baud_rate = m_uart->calc_baud(m_ch, data & 0xf);
753753      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);
755755      set_rcv_rate(rx_baud_rate);
756756      set_tra_rate(tx_baud_rate);
757757      break;
r20230r20231
834834         break;
835835   }
836836
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);
838838
839839   set_data_frame((MR1 & 3)+5, stopbits, parity);
840840}
r20230r20231
971971
972972   update_interrupts();
973973};
974
975void duart68681_channel::ACR_updated()
976{
977   write_chan_reg(1, CSR);
978}
979
trunk/src/emu/machine/n68681.h
r20230r20231
5555
5656   UINT8 read_rx_fifo();
5757
58   void ACR_updated();
59
5860private:
5961   /* Registers */
6062   UINT8 CR;  /* Command register */

Previous 199869 Revisions Next


© 1997-2024 The MAME Team