Menu

#1084 Serial I/O is only receiving every third character or so.

v3.2
open-need-info
nobody
None
xplus4
2021-04-29
2018-12-19
No

I have now tried the ACIA emulation in xplus4 with two terminal programs, both exhibiting the same problem, reception of only every third character, or so.

Using Term-80, HiggyTerm, or my PLATOTerm, I get the same behavior, no matter the baud rate selected, or whether I use hardware or no handshaking.

I am invoking tcpser -v 25232 -s 1200 -i "&K0" and pointing VICE to it. This setup works just fine with x64 and x128.

-Thom

Discussion

  • Richard H

    Richard H - 2019-10-30

    I ran into the same issue recently. The root cause seems to be that the emulated ACIA's IRQ type wasn't getting set - only the resource for it was. As a result, it wasn't generating IRQs. As far as I can tell, this also likely affected the PET and CBM2 as well.

    I threw together the attached patch to fix the issue, and while I had the ACIA datasheet open, I also made some changes to the clearing of status register error flags (reading the data register should clear the overrun, parity and framing error flags), and receive overrun behavior (new data should be discarded until the receive data register is read). The datasheet I used for reference is the more comprenehsive Rockwell one, found at https://downloads.reactivemicro.com/Electronics/Interface%20Adapters/R65C51.pdf.

    This is my first time poking at the VICE codebase, so my apologies if this is the wrong approach, but it seems to fix the issue for me and I haven't noticed any new breakage.

     
  • gpz

    gpz - 2019-10-30

    applied patch in r37113 - please test if the bug is gone now

    thanks for the patch!

     
  • gpz

    gpz - 2021-04-29

    So - is it?

     

Log in to post a comment.