zok@avsdS.UUCP (01/06/84)
I just bought an ANCHOR ELECTRONICS Signalman Mark XII modem and found out that it doesn't send break characters. IT DOESN'T SEND BREAK CHARACTERS??????!!!!!!! Our modems on our computers come up as 300 baud and will shift to 1200 baud when they detect a break key. This means that I cannot use this modem on modems of this type. Also some computers use the break key to kill a running process. This means (for my purposes) THIS MODEM SUCKS!!!!!!!!!!!!!!!!!!! And I would reccomend that people everywhere stay away from anchor electronics and I hope the designer burns in hell. With flames Mark Rodal
kevinw%isl@BRL.ARPA (01/11/84)
one (incredibly easy) way to send a break character at 300 baud (on a line which will not really send a break) is to send at 110 or slower the NULL (^@) which then looks suspiciously like a break to a higher speed line... i have this problem on another modem and this works just fine... -- Kevin kevinw@su-dsn
KSPROUL@RUTGERS.ARPA (01/11/84)
First off, Break is NOT a character, it is a state of the line, i.e. it is a real long SPACE (that is the line is low, not the space char) So therefore, a modem can not be responsible for sending/not-sending a break... If you are using it with a micro simulating a terminal, it is a problem with your terminal program... Most of the tty programs I have seen do not have the ability to send breaks... Keith Sproul Ksproul@Rutgers.arpa -------
Little.Fleas%hi-multics@sri-unix.UUCP (01/13/84)
From: Gary Little <Little.Fleas@hi-multics> Vell, 'sharli vhat ve haf here is de bimbo vhat don't know vhat dey ish talking about. Frankly, I would definitely like to know what a break character is. I have heard of a break sequence that sends an extended space (roughly all zeroes for about 200 milli-seconds). Mark, your problem is not in your modem, but rather in your terminal emulator, or in your terminal. It is a function of your async-controller in your DTE to provide the break sequence. If you rummage back thru some old info micro xactions, I think I have a psuedo-code, and or a 6809 programming model that might help you. Gary
edwards@uiucuxc.UUCP (01/16/84)
#R:avsdS:-64600:uiucuxc:3700081:000:229 uiucuxc!edwards Jan 14 20:32:00 1984 I thought answering modems start up with the speed of the calling modem? I also thought that it was the listening program's responsability to resetting the machines speed to match the modem (say on BREAK)? -alan edwards
david@intelca.UUCP (David DiGiacomo) (01/16/84)
No! Failure to transmit a break is very likely to be the modem's fault. Synchronous modems (e.g. 212) usually receive characters asynchronously from the terminal/computer with one UART (or moral equivalent) and synchronously reserialize them with another. So if the logic inbetween suffers brain damage (usually inherited from its designer) a break condition may not even be detected, much less propagated. Since the modem in question is theoretically "intelligent", it is clear that somewhere in modem-land there is a brain-damaged programmer who must bear the responsibility for the canard. -- David DiGiacomo, Intel, Santa Clara, CA {pur-ee,hplabs,ucbvax!amd70,ogcvax!omsvax}!intelca!david
jaap@haring.UUCP (Jaap Akkerhuis) (01/18/84)
<If you see this line, your news software is fixed> Yes, a break is not not a character, but a status of the transmitter and so, the receiver line of an RS-232 serial line interface. When there are no characters on the output, this line is kept in the MARK state. Which means, a voltage lower then -3.2 Volts. If a character is send, the line toggles between a this state, and the SPACE state (at least +1.2 Volts). A ``break'' is defined, as the line being a space longer then the character time, which is the time it takes to send out a character, stop start and parity bits included. For a 9600 baud line this will roughly be 1.04 ms (So the break will cause an framing error in the UART on the receiving side). A lot of (DEC-)interfaces (f.i. the DL-11) are capable of generating breaks, normally not supported in UNIX. But, as being pointed out already by some one, you can generate a break, by sending out a ^@ on a lower speed, which will be seen as a break on the receiving side. The character time of a 300 baud line is 33.3 ms, the ^@ is a SPACE during it's transmission. An plain @ will work just as fine, since it value is also most of a time a SPACE. Note that other character's will hardly work, since the bits could accidentally be interpret as stop bit, so the framing error will not show up and some garbage at the input will be the result. (Looking at the garbage makes our getty to recognise the speed, and will set the speed of the line to the one at the terminal. This is a nice feature, since all the terminals are not on fixed lines, but connected via a portselector) Generating a break on the lowest possible speed of the UART of course doesn't work this way, but you may then try to send extra stop bits, wrong parity, 6- or 8-bit character's etc in order to force an overrun error. The effect depends of course on the interpretation on the receiving side. Now the fun part: Some terminals are not capable of generating breaks on all the speeds they can handle. If the spec's say: speed 50 110 300 600 1200 2400 4800 9600 etc. and break 120 ms, it will for sure not generate a correct break for the 50 baud lines! Of course, if you have to use 50 baud, you have serious problems anyway, but still... Jaap Akkerhuis P.S The figures of the voltage levels can be wrong since I don't have the proper references by hand, but is's late all ready (at least here). You might want to look it up in f.i. the RS-232 standard.
seaburg@uiucdcs.UUCP (01/18/84)
#R:sri-arpa:-1540200:uiucdcs:10400101:000:231 uiucdcs!seaburg Jan 17 20:28:00 1984 Then what happens when I use my modem and press the Break Key on my terminal and it stops a Unix job? 1200 baud, too. Explain please. Does the break signal just become a scrambled mess that the computer interprets as a break?
stepp@uiuccsb.UUCP (01/19/84)
#R:sri-arpa:-1540200:uiuccsb:4400035:000:3621 uiuccsb!stepp Jan 18 09:26:00 1984 First, what is a 'break character'? The 'break character' is a character only in the sense that there is usually a key on the keyboard for that function. Like a regular character, break is a sequence of changes on the communication link of finite duration. Unlike a character, the break pattern on the link has no parity and is of an incorrect (too many) number of bits. Each regular character is sent as a pattern of (10 or 11) bits, each character composed of exactly the same number and with leading and trailling bits called 'start' and 'stop', respectively. The serial line idles in the 'mark' state (1 state, dating from the time when telegraphs were connected together in a series loop circuit, data was sent by interrupting the current briefly) with start and stop bits always being in the 'space' state (0 state). Note, on RS232 lines 'mark' is a negative voltage, 'space' is a positive voltage. One or more mark bits separate characters. A break is just that, an opening of the connection (a la telegraphs) for a long time. On modern serial data links, the break is a sequence of space bits much longer that any possible sequence that could be data surrounded by start and stop bits with mark bits between characters. UARTS can detect break because they get a 'framing error', that is when they expect to see a stop bit (ending a character) followed by one or more marks between characters, they see instead lots of spaces (the break). On modems that encode one bit as one baud, everything is simple. Regular characters go in at the transmitting modem and come out from the receiving modem bit-by-bit with no interpretation of the bits by either modem. Break goes in as lots of space bits and comes out the same way. The speed of the bits going in equals the speed of the bits coming out, the modem does not have to know what that speed is as long as its not too fast (e.g., less than 300 bps, though 600bps is possible). The 212A style of modem is much different! The 212A (1200bps full duplex) is not a baud-for-bit modem. The modem takes in 2 bits and outputs (on the phone line) one baud. It can send four different 'bauds' encoded by phase (PSK). To decode PSK the receiving modem must be in constant synchronization with the transmitting one. The asynchronous data is actually sent synchronously between modems. It comes out looking like asyncoronous data, but thats just to fool you. Now consider the break signal. All is not so simple at all. Break is handled specially on such modems and it is possible for a modem to get lost handling the break, basically because the modem may lose track of correct timing if it is not careful. (Note: on the 212A the data must be presented to the modem at exactly 1200 bps (+- 1%) for the conversion from asyn. to syn. transmission to work; the modem fills in garbage data during the varying time periods between characters which the receiving modem swallows, but the timing WITHIN A CHARACTER must be exact). Thus to send break over a 1200 bps line the modems at each end must be capable of understanding that a sequence of spaces coming in, then being synchronously transmitted is a break and the receiving modem must then temporally violate its idea of well-formed-character and hold the outgoing serial line at the space state 'too long', all without losing synchronization with the modem at the other end or failing to properly recover the next real character. Good 212A modems should do this trick with ease. I suppose it would be possible to have a modem that thinks break is something to swallow. I would tend to avoid such a modem.
preece@uicsl.UUCP (01/19/84)
#R:sri-arpa:-1540200:uicsl:7000040:000:1035 uicsl!preece Jan 18 12:59:00 1984 I'm a little confused by claims that the ability/inability to send a break lies in the terminal program and not in the modem. The terminal program must, indeed, do something to tell the modem to send a break. The modem itself, however, is the only place that the break state can be induced on the line, so it too must have a special ability. The terminal sets the data line (between itself and the modem) to the space state for a relatively long time (say a quarter of a second). The modem must recognize that that is a signal to it to pass on a (relatively) long space state. Aa 212A modem doesn't just use the data line state to select between two signals it can send down the line. Among other things, it uses a four-level signal, so two states are sent at once. I suspect the modem gathers a whole character before sending anything, but I am just guessing. I have read in several places that the Anchor 212 modem cannot send a break; that doesn't make it true, but it makes me suspicious. scott preece ihnp4!uiucdcs!uicsl!preece