Tom Jennings Fido #1 9 May 85 This is a copy of a letter I sent to Inforworld on an article that appeared. I'm submitting it to the newsletter since it seems that Infoworld won't publish it. (Or, maybe I just didnt wait long enough.) InfoWorld Attention: Kevin Strehlo Re: "Modem Battle Brewing" article, 29 April Tom Jennings 2269 Market St. #118 San Francisco CA 94114 Here's some stuff on that article, I just had to respond. Thanks for reading so far. If you have any questions, comments or whatever you can call me at the above number any day from 8 AM til midnight. There were some serious errors made in the article "MODEM BATTLE BREWING" on page 16 of the 29 April issue on the XMODEM protocol. Before talking about the specific problems, a misconception needs to be cleared up. The word "XMODEM" refers to both the protocol and is also the name of a specific CP/M program for remote bulletin boards. "XMODEM" is now taken to mean the binary protocol, not the name of a specific program residing on someones disk. This can be very confusing, but unless you are talking about a specific copy of a specific program, Xmodem refers to the protocol. It is completely untrue that Xmodem cannot run beyond 1200 baud, and equally untrue that it does not detect errors reliably. The original Xmodem program, XMODEM, MODEM7 and all it's variants, have a software bug that prevents them from operating at above 300 baud. It is a bug in the implementation, not the protocol, and has been there for years. My implementations of Xmodem (and many others') have been used for over three years at up to 38,400 baud (as fast as my serial ports go) with no problems whatsoever. The same program can communicate to any original XMODEM program on MSDOS or CP/M. In the FidoNet Bulletin Board Network, a public domain packet switching system consisting of more than 250 computers in the US and Europe, many nodes are using 2400 baud modems quite reliably, thank you. The error checking isn't quite as bad as many would lead you to believe. The original program by Ward Christensen had only a simple checksum error check; later versions implement a CCITT CRC-16 error check. Also, there is some doubt as to whether CRC error checking is all that much better than checksums over dialup telephone lines; while it is true that adjacent single bit errors can get through Xmodem's checksum process, errors on phone lines are almost always burst errors (that is, many bytes are trashed by noise on the telephone), these are very rare, and so in "real life" Xmodem is quite reliable. In any case, CRC-16 is available. In any case, the worst case error rate is something like 0.035% using checksums. No protocol can guarentee 100% accuracy, no matter what they may claim. Xmodem has many faults, such as half duplex operation and requiring an eight-bit data channel (can't be used through Telenet or TymNet...), but it extremely easy to implement, and is very reliable if done right. It is surely far from perfect, but is very suitable for small computer use where the constraints don't matter. You will also notice that the biggest detractors are firms with commercial interest in their own protocols. As to the importance of the Xmodem protocol in the real world, keep in mind that the modem manufacturers (and many others) who came out with software products with "improved" (read: incompatible) protocols were forced by the micro marketplace to retrofit Xmodem. Two examples are SMARTCOM and CROSSTALK. Ward Christensens protocol has problems, as he will admit, but it is still very strong and usable in the current environment. There are probably 10,000 bulletin board systems in the US that support Xmodem, and probably ten times or more individuals that use Xmodem with bulletin boards or for point to point use. It may be an "underground" protocol, but it works well in practice, and introducing new protocols will have to take this huge base of users into account. Ref: FidoNews 2-15 (27-May-1985) http://195.226.109.55/jhassler/wif/doks/fnews/fido215.txt By: Tom Jennings