On 11/14/2019 9:17 AM, a...@alanlee.org wrote:
I think you may be over thinking this. I suppose a system could send
a bit-stream where the data bits + any parity bits != 8 or the parity
bit isn't in the trailing MSB position. However, for simplification
lets consider only that case. A modem will always set the local line
coding to 8,N,1.
TCPSER aims to emulate a modem. I actually implemented the above
(assume the line is 8,N,1) when I first wrote the code in 2004 or so, as
my goal was to allow home computer BBS systems to run unmodifed using a
serial interface to a PC, as I previously noted. Those machines could,
as you note, set the comm channel to 8,N,1, so all was well.
However, I made no provisions if the DTE could not run with 8,N,1. At
VCF-Midwest this year, I tried to put my KSR43 online, only to find it
will only do 7 bit ASCII. Enter FozzTexx's mods.
I suppose you could have 7,N,x however the MSB of the 8-bit word
period would be a stop bit and would transfer through the modulated
transmission the same way - correctly.
Actually, it won't. When the 7,E,1 hits the 8,N,1 (effectively) of the
Internet, I could not even get past the initial "ASCII or PETSCII
screen" :-(
My advise is always set the MCU line coding to 8,N,1 (or preferably
1.5), strip the MSB in command RX, and manually re-add MSB parity
stuffing for command responses only based on some algorithm that makes
the most sense.
I think you may be underthinking this. The target is not an MCU, but a
piece of classic gear that people do not want to modify (or can't) to
handle the internet. TCPSER stands in for a Hayes modem and allows the
device to connect to the Internet (or another classic machine across the
world using the Internet as a stand in for telco lines.
Jim