Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[C64] Garbage characters when using UP2400 #37

Closed
rhalkyard opened this issue Sep 18, 2019 · 6 comments
Closed

[C64] Garbage characters when using UP2400 #37

rhalkyard opened this issue Sep 18, 2019 · 6 comments

Comments

@rhalkyard
Copy link
Contributor

I've noticed that when using the UP2400 driver, screens will often have garbage characters in places, and incorrectly-drawn or positioned, or sometimes completely missing elements - see the screenshot below.

This doesn't seem to be a protocol-decoding issue, since the same screens render fine with SwiftLink, but they always seem to render with the same corruption under UP2400. Could this be related to #28, discussing a change in the upstream UP2400 driver to fix an issue where 0x00 bytes got received as 0x0D? From commit f270f52, it looks like the the UP2400 driver distributed with PlatoTerm has diverged from that codebase, but I couldn't find a copy of the source to examine the changes.

vice-screen-201909181346

@tschak909
Copy link
Owner

I haven't made any changes to up2400 from its original repo.
-Thom

@tschak909
Copy link
Owner

it is important that RTS/CTS handshaking be set up, also, the modem needs to not escape 0xFF as 0xFF 0xFF (treat as raw).

@rhalkyard
Copy link
Contributor Author

Thanks; I'll double-check. I've only been able to try this under emulation with tcpser, since my homebuilt wifi modem is unreliable garbage (which in turn is my motivation for #31 😄). I've tried tcpser's various flow-control options, but the VICE docs are incredibly unclear as to how RTS/CTS works with all that.

Looks like the UP2400 driver change was committed by @greg-king5 in f270f52

commit f270f520a8320c670188908d670fb489340e1bb5
Author: Greg King <gregdk@users.sf.net>
Date:   Fri Dec 14 00:01:03 2018 -0500

    Replaced Johan's ser-up2400 driver with one that has several fixes.

    * Puts the buffers in a safe place.
    * Stops and closes the RS-232 device when requested to do so.
    * Has some less complicated code.

@tschak909
Copy link
Owner

If you use tcpser, PLEASE USE MY FORK, which has the IAC escaping code excised:

http://github.com/tschak909/tcpser

and run tcpser with -i "&K3"

-Thom

@rhalkyard
Copy link
Contributor Author

That seems to have done the trick, thanks!

Seems that these days everyone has their own tcpser fork! It's hard to keep track of all of them!

@greg-king5
Copy link
Contributor

Three points about VICE:

  • The current version of VICE can be told to handle the IAC escapes properly (it's called "IP232" there).
  • The user port emulation doesn't, yet, connect the handshaking lines to programs.
  • VICE can connect directly to the Internet; it doesn't need to go through tcpser. You can put Irata.online's URL into VICE's RS232 settings as a "device" name. Then, Platoterm will connect as soon as it starts (no need to dial it).

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants