[comp.dcom.modems] 8-bit byte can be sent w/o xform ?

kkim@uiucdcsb.cs.uiuc.edu (10/07/87)

   as i understand, most 1200-bps modems send data in the unit of
seven data bits preceded and followed by some start and stop bits.
there is usually one parity bit which may or may not be used.

   it seems that one 7-bit ascii character is sent as one unit.
however, binary files which uses all 8 bits are usually transformed
before being sent - that is, 3 8-bit bytes are transformed to 4 6-bit 
units, slightly modified (adding some number to make it non-control
character), and then sent as 4 units, not 3.

   i wonder if there are any special 1200- or 2400-bps  modems that can
send 8-bit byte as *one unit* without transforming 8-bit information.
OR is it possible to set/reset some flags on the standard 1200-bps modems
to accomplish the object ?

   thanks. in advance.

kyongsok kim

dept. of computer science; univ. of illinois at urbana-champaign

arpanet/csnet: kkim@b.cs.uiuc.edu
usenet/uucp  : ... {seismo, pur-ee, ihnp4}!uiucdcs!kkim

larson@sri-unix.ARPA (Alan Larson) (10/13/87)

In article <167100015@uiucdcsb> kkim@uiucdcsb.cs.uiuc.edu writes:
>   as i understand, most 1200-bps modems send data in the unit of
>seven data bits preceded and followed by some start and stop bits.
>there is usually one parity bit which may or may not be used.

You understand incorrectly.

>   i wonder if there are any special 1200- or 2400-bps  modems that can
>send 8-bit byte as *one unit* without transforming 8-bit information.

I have never met one that couldn't.  No flags were needed.  Try the
UDS 212LP, or the CDS 224 (2400/1200).  Both send all 8 bits just fine.
Neither has an option to do differently.

	Alan

reh@ccd700.UUCP (reh) (10/13/87)

In article <167100015@uiucdcsb>, kkim@uiucdcsb.UUCP writes:
>    as i understand, most 1200-bps modems send data in the unit of
> seven data bits preceded and followed by some start and stop bits.
> there is usually one parity bit which may or may not be used.
>    it seems that one 7-bit ascii character is sent as one unit.
> however, binary files which uses all 8 bits are usually transformed
> before being sent - that is, 3 8-bit bytes are transformed to 4 6-bit 
> units, slightly modified (adding some number to make it non-control
> character), and then sent as 4 units, not 3.
> kyongsok kim
> arpanet/csnet: kkim@b.cs.uiuc.edu
> usenet/uucp  : ... {seismo, pur-ee, ihnp4}!uiucdcs!kkim

Modems ussually send a start bit, 8 bits, stop bit, where the 8 bits
are whatever your computer sends to the modem.  Your computer can be
set to send 7 data bits and a parity bit, or 8 data bits and no parity bit.
(other combinations are possible but not as common)
No modem I know of is smart enough to try to take apart 3 8-bit bytes and
pack them into 4 7-bit characters, you would need a program on your
computer to do that (like uuencode). 
   The TYMNET network does convert 8-bit characters to 7 bit characters
and sends the 8th bits as an extra character after each 7 in it's internal
network, but that is transparent to the user and does not reach the user's
modem. (user runs normal 8 bits)  That is the only network that I know
that does that kind of conversion.
......................................................................
Bob Harold                      313-845-5404   
Ford Motor Co., DPTC room B-206 ...!ihnp4!mibte!ccd700!eed090!bob
17000 Rotunda Drive             Disclaimer: The views expressed might
Dearborn, MI 48121-6010         not be those of my employer or myself
Have questions about life?  Read the original design manual - the Bible.
......................................................................

plocher@uwspan.UUCP (John Plocher) (10/13/87)

+---- In <8215@sri-unix.ARPA> Alan Larson writes:
| +---- In <167100015@uiucdcsb> kkim@uiucdcsb.cs.uiuc.edu writes:
| |   as i understand, most 1200-bps modems send data in the unit of
| |seven data bits preceded and followed by some start and stop bits.
| |there is usually one parity bit which may or may not be used.
| +----
|You understand incorrectly.
+----

Talk about a helpful followup :-(

ALL modems send whatever bit pattern is sent to them by the computer.  If
the computer sends 6 bit data to the modem, the modem will send 6 bit data.
similarly, if the computer sends 8 bits, the modem does too.

(With pictures:
The usual way a computer talks to a modem is through a RS-232C serial port;
The bit stream looks like this:
		... <start bit> <data bits> <parity bit> <stop bits> ...
  Number:	... <   1     > < 6,7,or 8> <  0 or 1  > <1,1.5,or2> ...
  Value:        ... [   1     ] [variable ] [0,1, none ] [ 1's     ]

		   Usually the total number of bits is 10, so you get:

			Start	1	1	 1	 1
			Data	7	8	 7	 6
			Stop	1	1	 2	 1.5
			Parity	1	none	 none 	 1
			----------     ---	---	----
			       10      10	10	9.5 (almost 10 :-)

		71E = 1 0101010 1 1	(1 start, 7 data, even parity,& 1 stop)
		81N = 1 10101010  1	(1 start, 8 data, no parity,  & 1 stop)
		72N = 1 0101010   11    (1 start, 7 data, no parity,  & 2 stop)

 end of pictures)

The reason you see a 7 bit data path when using modems (which DO support
an 8 bit data path) is that the interface between the computer and the
modem is set to use a 7 bit data path.  In addition to that, some programs
which manipulate data assume that only 7 bits of the 8 are valid.  Programs
like /bin/mail (and others) don't really like it when they have 8 bit
characters shoved at them :-)  On the other hand, uucico, zm, kermit, umodem,
and a host of other file transfer methods are perfectly happy with all 8 bits!

If the serial port which is connected to the modem is set to 81N (8 data bits,
1 stop bit, and no parity) with a command like

    stty 1200 -parenb cs8 -cstopb < /dev/ttyd1

then the modem will be able to transmit 8 bit data.  (Be sure that the computer
at the other end of the line also is set up for 8 bit data, too! :-)

If you are using a PC with Procomm or Qmodem or... there is a menu (with a
name like "dial" or "configuration"...) which lets you set these things for
each system you call.  Note that you MUST have an 8 bit data path if you
are using XMODEM, YMODEM, ZMODEM, SEALINK, TELINK or other similar file
transfer methods.  Only Kermit (and Blast) will work with a 7 bit data path.

Hope this helps...

-John

jpdres10@usl-pc.UUCP (Green Eric Lee) (10/14/87)

Distribution:

Keywords:

Summary:

Expires:

Sender:

Reply-To:

Followup-To:


In message <167100015@uiucdcsb>, kkim@uiucdcsb.cs.uiuc.edu says:
>   it seems that one 7-bit ascii character is sent as one unit.
>however, binary files which uses all 8 bits are usually transformed
>before being sent - that is, 3 8-bit bytes are transformed to 4 6-bit 
>units, slightly modified (adding some number to make it non-control
>character), and then sent as 4 units, not 3.

1200 baud modems have no inherent problem with sending 8-bit data.
Modems do not understand parity. They just send what they get, and
leave the interpretation up to the reciever. I do 8-bit transfers all
the time, with both Unix and various microcomputers.  If what you
describe is actually happening, it is probably a "feature" of your
computer and/or software. For example, many terminal servers are
incapable of handling 8-bit characters, and at many installations, the
dial-up modems are connected to the same terminal servers as those in
the terminal rooms. Flow control is an especial culprit in the
inability to handle binary data. In an attempt to get around these
problems, the Kermit file transfer protocol was created. It does
quoting of control codes, and, optionally, quoting of 8th-bit-set
characters. This quoting mechanism in no way resembles the one you
mention (i.e. breaking 3 8-bit bytes into 4 6-bit bytes), and I am at
a loss to figure out exactly what the heck is actually going on in
your case. Maybe more details about your installation, software, etc.
would be advisable.

--
Eric Green  elg@usl.CSNET       from BEYOND nowhere:
{ihnp4,cbosgd}!killer!elg,      P.O. Box 92191, Lafayette, LA 70509
{ut-sally,killer}!usl!elg     "there's someone in my head, but it's not me..."

krumvp@opus.uucp (Paul Krumviede) (10/15/87)

In article <713@ccd700.UUCP> reh@ccd700.UUCP (reh) writes:
>   The TYMNET network does convert 8-bit characters to 7 bit characters
>and sends the 8th bits as an extra character after each 7 in it's internal
>network, but that is transparent to the user and does not reach the user's
>modem. (user runs normal 8 bits)  That is the only network that I know
>that does that kind of conversion.
>......................................................................
>Bob Harold                      313-845-5404   
>Ford Motor Co., DPTC room B-206 ...!ihnp4!mibte!ccd700!eed090!bob

Tymnet does not do this internally.  The only transformation is to
"escape" binary data with values of 00x-07x by preceeding such data
with a hex 00.  I'm not sure where this confusion could have originated;
I don't think any host protocols do anything like this either.

Paul Krumviede, Tymnet Technical Support

henry@utzoo.UUCP (Henry Spencer) (10/20/87)

> ALL modems send whatever bit pattern is sent to them by the computer.  If
> the computer sends 6 bit data to the modem, the modem will send 6 bit data.
> similarly, if the computer sends 8 bits, the modem does too.

Um, not entirely true.  300-baud modems did just faithfully send every bit
the user threw into them.  They just altered the state of the signal they
sent out on the wire every time the signal coming in changed.  This is
NOT TRUE for 1200-baud modems, and still less so for faster ones.  The
modem receives the data, pulls it apart and puts it back together in a
form more suited to transmission.  For example, "1200 baud" modems really
send 600 two-bit lumps per second, and the actual transmission is done
synchronously rather than asynchronously, with the modems hiding all this
from the users.  (This is why autodialing is normal in modems now -- the
fast modems have to be smart anyway, and adding autodialing costs little.)
So the modems do have to understand the data coming in, and hence there
are limits on its format.  Fairly broad ones, fortunately, for most modems.

If you want a gross case of this, consider that the Telebit Trailblazer
knows what uucp packets look like, and the actual data on the wire of a
Trailblazer uucp connection only vaguely resembles what the hosts see --
the modems are using a totally different packet scheme between themselves!
-- 
PS/2: Yesterday's hardware today.    |  Henry Spencer @ U of Toronto Zoology
OS/2: Yesterday's software tomorrow. | {allegra,ihnp4,decvax,utai}!utzoo!henry