That's alot of diagnosis in a short amount of time. You are either really patient or really stubborn, we shall see which of those is soon.
Let's start with WinVICE: You should be running v3.5, no later. As you found out they have done something vile with the modem handling, so my best results are found using this version and build: 3.5 (GTK3 3.24.24, GLib 2.66.3)
The TCPSer version I'm running (semi-successfully) is v1.1.4
So, for the local mode not working as expected, know that while running the same software version and the same (dsp.Modem x) file using real hardware, it will work as expected. It's routine is ALMOST like what you described in a previous post about missing the 8th (or 0th) bit from the expected response. In DS2's world, the seven bit is removed, translated into C64 basic's chr$, and the sum of 48 is removed from it, which gives you the expected ASCII character. This is why commonly DS2 has always preferred to use number codes instead of verbose (atv0 instead of atv1) so that something like the verbose response RING can be condensed to only one bit, in this case, the number 2.
You will see the routine peppered throughout the BASIC code as
gosub94, which in version 11.60 was the actual resting place. Since version 2.0 it has been rerouted to line 364, as seen here:
The value of the received message from the modem is
returned in 'a' as a decimal, most often times will be a Hayes result code when offline, or a handful of chatter when online but the user is idle. Image BBS does not behave this way, so as long as there is something to
get#, that routine will just run until TCPser eventually craps out. But at least it doesn't report those characters to the BBS as user input, otherwise the IDLE would never work properly. As with any of the modem proxies I've used (comm2comm, TCPser, BBS Server, Ultimate64, etc) none of them have a true 100% Hayes compatible result or command set. The basics are there, yes, but advanced commands like DTR and DCD manipulation (&Cx, &Dx) are missed on them. Ultimate64 by Gideon is a prime example of this. The Swiftlink emulation layer is a beautiful thing, and for a user or caller, it needs nothing more than it already has. But for a sysop, or anyone desiring to host callers, it's highly problematic, and often needs some special workarounds.
In fact, I have made several modifications to the dsp.configure file that helps make sense of the modem stuff. There have been a few posts on Future World II about how to trick the carrier inversion, and how to select modem 3, change it, hold your mouth a certain way, or whatever, just to have it answer calls. I just added the corrected routines and fixed the logic on how telnet has changed the game, so now the user just needs to pick the appropriate modem (added Ultimate and proxy modems as an option). This is where new sysops are going to have the most trouble trying to figure out how to get these options, since the latest release of DS2 (as of this writing it's v2.6d) there has been added an entry for Strikelink modems, although it uses the same dsp.modem 7 file as the one found in Vendetta's 2.5 cracked version, loosely coined "v2.5c".
Config screen for modem selection: C-Net DS2 v2.6d
Config screen for modem selection: C-Net DS2 2.5 w/HVI-mod
There was no modem# higher than 5 on any DS2 release until v2.5 where
dsp.Modem 9 made an appearance, but it's pretty much the same as #5 but with some new DTR routines that a fellow named Dave Grabowski was credited. The #5 file was made specific to the Supra24 modem, so any backward compatibility needs to be refer to what makes that particular modem so special that standard Hayes rules can't be followed. It is there that I started, and what model my late entries (and overall replacement of modem 9) are based on. So, did I write the routines? No, I just found some that worked from other trials and errors, and cobbled them together in an easier to understand method, because with my age and memory problems, be damned if I'm going to try to keep track of a little orphan Annie secret decoder ring for modem setup. (invert this, tweak that, lie about baud rate, etc.)
But at the end of the day this is no different from the maxi-compatibility issues that CNet has had with most manufacturers. That's why there are so damn many modem files (1 thru 5 for the user port alone), for things like the HESmodem, MiteyMo, 1670, and actual use of external modems with the Omnitronix RS-232 adapter. I have (in my deployments) added 3 more modem styles, and with rewriting some of DS2's config and startup routines, I managed to separate them into just two different categories, leaving me with dsp.Modem 8 (Ultimate64 / Ultimate1541-II+) and dsp.Modem 7 (Telnet w/proxy, such as TCPSer or BBS Server). Now keep in mind that I have been forced to keep my modified programs
in their entirety to myself, and not distribute them. This was the actual spoken and written word from the new owner (Dan Fitzgerald) directly to me, so there was no room for misinterpretation. I've been abiding by that request
(order). I am happy to share the knowledge that I've amassed over years of working with this product, and successfully running a BBS on it, but putting any of the dsp files up publicly for download is considered copyright infringement. Normally I'd be gravely apathetic about stuff like that, considering most of us sysops hosted cracked or copyrighted software by the boatload over the years. But with the title owner having your personal cell phone number, and already have utterances of words like "attorney", I tend to not rock the boat.
Now, stuff like online games, addon modules, dsp files that I've written, absolutely, they are available on 8-Bit Playground BBS for download, free of charge, and without need for validated registration. I want to contribute to the community, but my hands are rather tied when it comes to what I can and cannot share. I have fixed an immense amount of bugs in DS2 having to do with SD2IEC compatibility alone, but that is no fault of Jim Selleck's code, it is more or less the entrance of a new hardware manufacturer which, like the new modem products, does not follow the compatibility matrix of CMD file operations. It's what I call "CMD-like" file ops, but that is a whole different thread of posts. (I had a really insightful discussion with Jim Brain about that, and I took alot of notes!)