Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site fortune.UUCP Path: utzoo!linus!vaxine!wjh12!genrad!decvax!harpo!ihnp4!fortune!rpw3 From: rpw3@fortune.UUCP Newsgroups: net.unix Subject: Re: Transmitting BREAK - (nf) Message-ID: <2990@fortune.UUCP> Date: Sun, 8-Apr-84 04:06:17 EST Article-I.D.: fortune.2990 Posted: Sun Apr 8 04:06:17 1984 Date-Received: Mon, 9-Apr-84 03:47:19 EST Sender: notes@fortune.UUCP Organization: Fortune Systems, Redwood City, CA Lines: 57 #R:sri-arpa:-1674800:fortune:26900039:000:2930 fortune!rpw3 Apr 7 20:36:00 1984 Sorry, Mcferrin, Nelson is right. While it is true that a is all zeroes and a is all ones, the idle state of RS-232 data lines is MARK == ONE == +Volts. A start bit is a SPACE == ZERO == -Volts, and stop bits are ones. Therefore, if you want a big wide BREAK == "long space" == "long zeroes", better send a slow . This is a historical anomaly left over, would you believe, from the original days of the telegraph! Back then, everybody was wired in series (an arrangement called "current loop" still seen in Teletype-based systems), and the idle state of the line was with everybody's key shorted (closed) with that little horizontal knife switch you see on the side of Morse Code keys. To send, you opened the switch (broke the line), and then sent. The "down" (or closed) position of the key made a sound on the clicker or a "mark" on the paper (for automatic strip paper recorders). The "up"/open position made a "space" on the paper. So the idle or "stop" state was "mark" and the "start" signal (for the recorders) was "space". (The recorders shut off automatically on "long mark"). Also, to interrupt someone who was sending (perhaps to send some priority message like "Help! Robbers!"), you "broke" the line with your knife switch (sent a or a "long space"). Because all the keys and clickers and recorders were wired in series, the person who was sending would suddenly be unable to hear his own "echo", so he (presumably) would stop and wait for the "breaker" to send. Note: Timesharing systems that support half-duplex current-loop terminals (not "local copy", but true half-duplex with both keyboard and printer in series on the same pair of wires) have to expect everything they send to be "echoed" and have to use as the sole means of interrupting typeout. (They detect the by comparing what is sent out to the echo and assuming any difference is a . Thank goodness those are mostly gone!) Anyway, the tradition lingered through 5-level teletypes (Model 19, etc.), through 8-level ASCII tty's (Model 33/35/37) all of which used "current loop" circuits. When the switch was made to "voltage" circuits (RS-232), in order to allow current-loop to RS-232 level converters to work, RS-232 had to use the same conventions. To add to the confusion, the CONTROL leads use the same ONE == +V / ZERO == -V convention as the DATA leads, all right, but the control leads don't have the concept of mark and space. So the idle condition for control lines like RING and DTR is zero (or -V). Just backwards from data. See John McNamara's "Technical Aspects of Data Communications" (DIGITAL Press) for more amusing historical tidbits (like Strowger the undertaker and the first dial telephone). Rob Warnock UUCP: {ihnp4,ucbvax!amd70,hpda,harpo,sri-unix,allegra}!fortune!rpw3 DDD: (415)595-8444 USPS: Fortune Systems Corp, 101 Twin Dolphin Drive, Redwood City, CA 94065