[comp.sys.ibm.pc] Generate a BREAK on COMn: ?

ggw@wolves.uucp (Gregory G. Woodbury) (03/10/90)

	I find myself in a situation where I have to write a quick and dirty
program to generate a break on a DOS COMn: port.  The break (in this case)
is that peculiar state of the RS-232 line that hold the transmit signal in
mark state for a particular length of time.
	I am dealing with a rather vanilla multi-port COM card and a modern
(Phoenix or AMI) BIOS.  Is there a bios function to do this?  The machines are
ISA bus '286 and '386 machines running DOS 3.3.
	Any particulars or hints appreciated.

-- 
Gregory G. Woodbury
Sysop/owner Wolves Den UNIX BBS, Durham NC
UUCP: ...dukcds!wolves!ggw   ...dukeac!wolves!ggw           [use the maps!]
Domain: ggw@cds.duke.edu  ggw@ac.duke.edu  ggw%wolves@ac.duke.edu
Phone: +1 919 493 1998 (Home)  +1 919 684 6126 (Work)
[The line eater is a boojum snark! ]           <standard disclaimers apply>

dixon@sagittarius.crd.ge.com (walt dixon) (03/16/90)

Typically one has to ask the uart to send a break.  As you pointed out in
your original posting the break is special because the line is held in
the space(?) state (I'm not really into communications) for an extended
period of time (greater than a character time at low speed).  The uart
uses the start/stop bits to frame the character.  Generally it's fairly
easy to get the break generated,  although one usually must do his own
timing.  One trick that might work (depending on how fussy the device
on the other end is) is to drop the transmit baud rate to the slowest
possible speed and send an ascii \000 with no parity.  I know that
this trick has been used on systems that cannot send breaks for one
reason or another.

If you want some code which sends a break on an 8250 type uart, send
me email.  Its really trivial.


Walt Dixon		{arpa:		dixon@crd.ge.com	}
			{us mail:	ge-crd			}
			{		po box 8		}
			{		schenectady, ny 12301	}
			{phone:		518-387-5798		}
Walt Dixon dixon@crd.ge.com

mep@stb.uucp (Marty) (03/19/90)

In article <1990Mar10.014345.5932@wolves.uucp> ggw@wolves.UUCP (Gregory G. Woodbury) writes:
>
>	I find myself in a situation where I have to write a quick and dirty
>program to generate a break on a DOS COMn: port.  The break (in this case)
>is that peculiar state of the RS-232 line that hold the transmit signal in
>mark state for a particular length of time.
>	I am dealing with a rather vanilla multi-port COM card and a modern
>(Phoenix or AMI) BIOS.  Is there a bios function to do this?  The machines are
>ISA bus '286 and '386 machines running DOS 3.3.
>	Any particulars or hints appreciated.
>
>-- 
>Gregory G. Woodbury
>Sysop/owner Wolves Den UNIX BBS, Durham NC
>UUCP: ...dukcds!wolves!ggw   ...dukeac!wolves!ggw           [use the maps!]
>Domain: ggw@cds.duke.edu  ggw@ac.duke.edu  ggw%wolves@ac.duke.edu
>Phone: +1 919 493 1998 (Home)  +1 919 684 6126 (Work)
>[The line eater is a boojum snark! ]           <standard disclaimers apply>


There is no bay to generate a BREAK using either DOS or the BIOS.
You have to do it yourself. Assert the BREAK signal and time it out
for however long you desire... I believe it should be about 2
character times, if I recall correctly.

marty

jmerrill@jarthur.Claremont.EDU (Confusion Reigns) (03/21/90)

In article <1990Mar18.201049.2670@stb.uucp> mep@stb.uucp (Marty) writes:
>There is no bay to generate a BREAK using either DOS or the BIOS.
>You have to do it yourself. Assert the BREAK signal and time it out
>for however long you desire... I believe it should be about 2
>character times, if I recall correctly.

Something I've been wondering for a while:

	Just what IS a break signal?