Maximizing USR Courier Performance ================================== By Alex Boge ============ The contents of this file are Copyright 1991-1992 by Alex Boge. All rights reserved. You may distribute this freely, without charge, so long as no portion of this document is modified. While nothing I describe or suggest in this document should be harmful to any part of your computer system or modem, I will not be responsible for anything (my parents told me that a long time ago). US Robotics Courier Modems and Max Speed ======================================== Congratulations! You have a US Robotics Courier modem. You own what I consider to be the best modem available today and the best value too. An impossible combination to resist. This document deals with newer genera- tions of the Courier modem. Your modem should be capable of using the v.42bis protocol. Check your manual (or try entering AT&K3, if it works, (71 min left), (H)elp, More? you've got v.42bis). This text file will tell you, in no uncertain terms, how to get THE maximum performance out of your modem. I'll lay it out in simple, layman terms. I'll give you the easy setup information first. If you don't want to learn more, that's up to you. If you really want to know the nuts and bolts of it all, just read further. It's up to you. We live in America, land of freedom and unlike our school systems, here in computer land you still can decide when enough is enough and leave the details in the hands of professionals like myself. Instant proof. Here is the quickest way to get the best performance out of your HST in three easy steps: Step 1) Set your DIP switches. These are the default settings: 1-UP 2-UP 3-DOWN 4-UP 5-DOWN 6-UP 7-UP 8-DOWN 9-UP 10-UP Setting DIP switch 9 DOWN will allow you to examine performance while still connected and I recommend changing it. This will NOT affect performance in any way. Older Courier modems may have different default settings, check your settings. Steps 2 & 3 should be entered from your communications program. Set the COM port speed to 38400 bps (or 19200 if that's as fast as you can go). Your communications program must use hardware (or CTS/RTS) flow control. (71 min left), (H)elp, More? ns Step 2) AT&F This restores factory default settings Step 3) ATX4&B1&C1&D2&H1&K3&R2&S1&W This sets & stores max performance. That's it folks. You will now have the fastest (about 100 Kb per minute) possible download or upload speed you can get out of your Courier modem. I know it seems simple but that's the beauty of a well designed product. There are some other things to consider though, like which transfer protocol you should use (Ymodem-g versus Zmodem-90 (MobyTurbo) versus HS/Link versus the rest), which link protocol to use when both are available (v.32 versus HST) and whether or not to use compression and which one (MNP 5 versus v.42bis). Since we covered the setting up of your modem so briefly, I will do the same for these other considerations. If you want details, read further in this document. If you want solid answers, look below. v.32 versus HST Link Protocol ============================= If you have a HST only or v.32 only modem then this discussion doesn't apply to you, you have no choice in what you use (I sure hope you picked the right one). You can skip ahead. (If you are a modem expert I recom- mend that you do read the detailed explanation on this decision. It's interesting that it's not really the link protocol but the error control that provides for the slow down in unidirectional transfers with v.32bis.) Actually, the decision here is quite easy. If you spend the majority of your time downloading files (or upload but rarely have the need to do both at the same time), choose HST. HST is faster. You can reach 1740 cps in either direction using HST whereas you can only get about 1700 cps using v.32bis and 1100 cps with v.32. If you plan to use HS/Link to Up and Download files simultaneously then there is no choice, v.32 is the only way to go. HST is not designed to do this. You can reach 1680+ (averaging about 1650 though) cps in both directions simultaneously when using HS/Link and a pair of v.32bis modems. (More on HS/Link later. Suffice it to say that, obviously, HS/Link allows you to simultaneously upload and download files). If you don't transfer files then it really doesn't matter which you use. v.32 provides a quicker, crisper feel to your typing and on-line games may respond noticeably quicker but not significantly. Both HST and v.32 provide good control over noisy line conditions. You say you have a Dual Standard and are calling another Dual Standard and want to use HST instead of v.32bis? There is an easy solution. If you would like to disable v.32 then simply use "ATS27=4". This will disable v.32 and v.32bis until you enter a "ATS27=0" to re-enable it. The B1/B0 setting has no effect when you are calling, only answering. When answer- ing, B0 will allow a v.32 connection while B1 will not. Using Compression: v.42bis versus MNP 5 ======================================= Here you have two decisions, do you use compression and if so, which one. In the past I've recommended against using any data compression. After LONG and detailed reexamination of my own download and upload experi- ences I am ready to suggest differently. This is not a full reversal. If you want to get THE FASTEST transfer times (on compressed files) out of your modem, do not use compression. It's as simple as that. If you don't mind slowing down by approximately 1-5% (but an average of 2%) then use v.42bis. Unless you are only transferring non-compressed files (and cannot use v.42bis) or do not perform file transfers, do not use MNP 5, the slowdown is up to 45% O.K. Alex, you say to me, why is all this so? Doesn't it make sense that compressing data before it's sent will speed up my transmissions? You are, of course, right (the customer is always right). I say to you, THAT is why BBS's (among other reasons) have all their files in .ZIP format (or .ARJ, .ARC, .LHZ and others). A ZIP file is already compressed and far better than v.42bis could EVER hope to do. When you try to compress an already better compressed file you just end up incurring (and passing along) extra overhead. This slows down transfers. v.42bis is designed to detect a compressed data packet and minimize the overhead sent with such a packet, MNP 5 cannot do this. This means that if you transfer a compressed file with MNP 5 your speed will drop dramatically. How much? Transferring a typical ZIPped file using HST and Ymodem-g. Without data compression this file will transfer at about 1730 cps. Using v.42bis it will go at about 1700 cps or less and with MNP 5 this same file will move at less than 1550 cps (in some cases as slow as 1000 cps). (Reduce these figures by about 2.5% for a connection using v.32bis.) If you decide to use compression, which should you use? v.42bis is the better compression, simple as that. MNP 5 can provide up to a 2 to 1 compression ratio on average. v.42bis can provide up to 4 to 1 (but usually closer to 3 to 1). You may be saying to yourself, hey, 1700 versus 1730 isn't so bad. Why don't I use v.42bis and just live with the 2% loss of speed. That is a perfectly valid argument and is up to you how important 2% is. If it's a long distance call it may be worth considering, if it's a local call don't lose sleep over it. Also remember, if you are using v.32bis, reduce this by an additional 2.5% to accommodate in reduced efficiency of the LAPM error control protocol over HST error control. Now you are nearly 5% slower. How fast is compression, really? Well, I have transferred several CAD files, each over 4 megs in size, using HST & v.42bis at a speed of just under 3835 cps. I have transferred (as par to testing) the PC Board BBS documentation file, PCBOARD.DOC, at a steady 3800 cps. The same files under MNP 5 scored about 2850 and 2550 cps respectively. Without compres- sion, 1730 cps average. Now you are saying, Hey! I want to get 3835 cps downloading .ZIP files, why can't I do that. Well, instead of telling you to reread the above paragraphs and quite dreaming I'm going to make you feel better and tell you that in fact, you are actually going even faster! If you were to transfer the PCBOARD.DOC file after ZIPping it you would be getting about 6400 cps!! How? Well, as I said, a ZIPped file is better compressed then transferring an non-compressed file with compression. This means your real throughput is higher than the simple ZIP file transfer throughput. Look at the detailed explanations for the math. You will be surprised. WHICH TRANSFER PROTOCOL? Ymodem-g vs Zmodem-90 vs HS/Link vs others ==================================================================== Again, I'll give you the easy answers and if you want details, look in the detailed explanation area. The 'others' category includes such golden oldies as Xmodem, Kermit and hacks of other protocols as well as others that claim to be faster or are around to satisfy special applications. Ok, let's jump right to it. The fastest transfer protocol is Ymodem- g. The fastest implementation of this protocol I've ever used is part of the DSZ (and GSZ) driver from Omen Technology. To use this protocol requires registration of DSZ or GSZ. This is such a good performer (al- though the documentation and user interface sucks) that I can recommend it worth your while to register this shareware product. Zmodem is also from Omen Technology. Unlike Ymodem-g, Zmodem was written by Omen. No one writes a better Zmodem then Omen and the only true implementation worth talking about comes from the DSZ and GSZ drivers. The internal versions and hack version of Zmodem I've tried have never per- formed as well as the Omen version. Now there is a version of Zmodem called Zmodem-90 (nicknamed MobyTurbo by it's author). This version is even faster and comes closest to the times reported by Ymodem-g. Zmodem is worth considering even if it isn't as fast as Ymodem-g for several reasons. Like Ymodem-g it is a batch protocol, which means you can transfer several files in a row and both do not require you to enter the filenames, they are detected during transfer. Zmodem, however, adds a whole barrel of additional features. Most notably, it has the ability to recover from an error (which Ymodem-g cannot and is one of the reasons it is so much faster) during transfer. Also worth noting is that it has a feature called Crash-Recovery. This lets you resume downloading a file that got cut-off prematurely without having to start back at the beginning of the file. The other protocol to consider is HS/Link. This is a brand new protocol and as of this writing is only at version 1.00. I followed this protocol through beta testing and knew that it help promise as it addresses a feature of modems that has long been ignored. You will only want to consider HS/Link if you have a Courier capable of v.32 (the Courier Dual Standard and Courier v.32 both do, the HST does not) and you perform both uploading and download of files. While this protocol can transfer in one direction only (and does so nicely), you'd be much better off using Ymodem- g or Zmodem-90. HS/Link allows you to upload multiple files and download multiple files in both directions at the same time at speeds that are very close to what Zmodem can do in just a single direction. Think of the benefit on a BBS. You are going to be spending the next 20 minutes downloading so why not upload something at the same time. You get upload credits, the BBS gets new files (which are always needed) and you are pushing the envelope of modem communications technology (the air sure is clear up here). Unlike the only other bidirectional protocol I've found out there, BiModem, HS/Link is very easy to use and quite fast. HS/Link has error correction and crash recovery like Zmodem. It is available as shareware and has only it's display slightly crippled, not it's performance. That said, I must also comment that it is well worth the registration fee and I suggest that you do register and help this protocol improve. To summarize: Fastest -> Ymodem-g Fault tolerant -> Zmodem-90 (MobyTurbo) Bidirectional -> HS/Link Choose depending on your requirements. A NOTE ON SERIAL PORTS AND THE 16550 UART ========================================= The UART is the chip that handles data between your computer and your modem. If you have an internal Courier modem, you have the best UART in the market already installed, pat yourself on the back. If you are using an external modem, you have to plug into a serial port via a cable. This serial port is either on a plug-in card in your computer or on the motherboard itself. Most serial ports use a quite inferior UART chip. This chip doesn't handle high speeds very well. Even if you have a very fast computer, sometimes the UART still can't keep up and loses some of the data coming in your serial port. This will cause errors that will abort your Ymodem-g transfer or severely slow down your Zmodem and HS/Link transfers (other protocols suffer as well). If you replace the UART in your system with a NS16550AFN UART chip (which, by some miracle, is a straight forward, pin-for-pin replacement) you will find this situation much improved. Both DSZ (GSZ) and HS/Link, discussed above, support this chip. Your transfer speeds will improve slightly. More importantly, your computer should be able to handle the high speeds correctly, even if you multitask or have a slower computer. You can get this chip from electronics mail order shops like Arrow Electronics. You can also order the chip (by itself or already installed in boards) from Rusty 'n' Edie's BBS (call (216) 726-2620 data). Just look around, it is well worth the search. If your serial port is part of the motherboard, it may actually be worth it to disable that port and use an add-on board. More on this in the detailed explanations section that follows. The chip has "16550" right on it so you an identify it easily. DETAILED (SOMETIMES TECHNICAL) EXPLANATIONS ============================================ Who is Alex Boge? Well, I'm a 14 year computer veteran. I've worked on a large variety of computer but mostly on PC's based on MS-DOS (uh, that's 'IBM Compatible' to you uneducated lugs out there). I have been using modems for all 14 of those years. My first experience was at 300 baud on a teletype and now I'm at 14,400 bps on a 80486. I've come a long way baby! I don't claim to know everything (not publicly at least) but I do know enough that I can write this document. THIS DOCUMENT ============= In producing this document I draw upon years of experience in the PC BBS scene, all around the USA and outside. To produce the figures and reach the conclusions presented here I downloaded over 500 megabytes of files and uploaded over 200 megabytes. Much of that in the last few months alone. This is the third revision of this document, it is a complete rewrite. This document is UP-TO-DATE. I am talking about v.32bis and v.42bis technologies. The modem I'm using right now is the latest generation US Robotics Dual Standard. It's got all the buzzwords: HST, v.32bis, v.32, MNP 2-5, LAPM, v.42bis and all the other lower speed protocols which I won't even bother to mention. If you are running under 9600 bps then I don't have time to wait for you...get real, go 14.4! SETTINGS ======== Here is the result from an ATI4 command on my Dual Standard. It should be the same (except the title, and perhaps the B0 setting). If you have an HST only then instead of a B0 you will have a B1. On my settings you will see just a couple of differences from those I suggest at the beginning of the document. M3 keeps the speaker quiet during dialing and only on during the phone call and link negotiation (you can hear the difference between a quick HST connection and the much longer v.32 negotiation). &A3 reports all the protocols in use on this connection on the CONNECT line. I use &K0 because I want the fastest possible transfer speeds, you may select to use &K3 which will allow v.42bis compression but never MNP 5. ati4 USRobotics Courier 14400 HST Dual Standard Settings... B0 C1 E1 F1 M3 Q0 V1 X4 BAUD=38400 PARITY=N WORDLEN=8 DIAL=HUNT ON HOOK TIMER &A3 &B1 &C1 &D2 &G0 &H1 &I0 &K0 &L0 &M4 &N0 &P0 &R2 &S1 &T5 &X0 &Y1 %R0 S00=000 S01=000 S02=043 S03=013 S04=010 S05=008 S06=002 S07=060 S08=002 S09=006 S10=007 S11=070 S12=050 S13=000 S14=000 S15=000 S16=000 S17=000 S18=000 S19=000 S20=000 S21=010 S22=017 S23=019 S24=150 S25=000 S26=001 S27=000 S28=008 S29=020 S30=000 S31=000 S32=001 S33=000 S34=000 S35=000 S36=000 S37=000 S38=000 LAST DIALED #: OK While we're talking about AT commands, try ATUSR. I'll explain some of these settings here. I don't cover them all because most settings don't affect performance. Several may be different depending on your phone system, computer system and other local conditions. B0 or B1 ======== This setting is B1 on an HST only modem and B0 on a v.32 only modem. The Dual Standard can use either. This setting only affects what a Dual Standard will do when answering a call from another modem. If you use B1 then only a HST link will be negotiated. If you use B0, then your Dual Standard can answer calls in v.32(bis) mode from v.32 modems. &B1 === Here is an important setting. Your Courier modem has the ability to use two different speeds at the same time during communications. There is the speed at which the modem talks to the other modem (this is the DCE/DCE rate or modem speed) and the speed at which the modem talks to your computer (this is the DCE/DTE rate or terminal speed). Both are measured in Bits Per Second, or BPS. Do not confuse this with baud, they are different. You will be using the fixed DTE mode. This means that regardless of what speed the modems are talking to each other, your computer and modem will always communicate at the same, higher, speed. We use a high speed so that the modem doesn't have to wait for the computer. Your computer is almost always faster than the modem (except in the case of really slow computers) so this is desirable. When you use compression, sometimes more data comes in then you might think. Two modems communicating at 14,400 bps can transfer at a rate of up to 3840 cps, that's 38,400 bps. You'll need every bit of speed your serial port can provide. That is why you want to have your communications program port speed set to 38400 bps. This way your more will never overrun your computer. By default (&B0), when the modem connects with another modem, it changes the speed that it communicates with your computer to match that of the modem link. If you connect at 2400 bps, then the serial port speed changes to 2400 bps. Using &B1 overrides this and forces the DCE/DTE speed to stay at 38400. Newer Courier modems will override the &B0 setting and force a speed of 19200 bps when making a 12000 or 14400 bps connection. &C1 and &D2 =========== These settings don't affect performance but make the Courier to accurately report a connection to another modem and allow you to hang up your connection quickly. &H1 and &I0 =========== These two settings define flow control. The &H1 is most important. It tells the modem to use hardware flow control. At the speeds we are working, hardware flow control is absolutely necessary to keep each modem from overrunning the other (sending data too quickly in one direction or the other, or both). While you can use software (XON/XOFF) flow control, it is no where near as quick and will probably not be up to the task. Also, it will lower performance. You must set your communications program to use hardware flow control as well. It may be called CTS/RTS (or simply CTS) flow control. &I0 turns off software (XON/XOFF) flow control on received data, this sort of control is unnecessary and adds overhead. See &R2) &K3 is discussed in the section about compression. === &M4 === This setting controls error correction. The &M4 setting is most flexible. If it is possible to use error correction, the modem will. If not, it will connect anyway and continue. Note, it is required to have an error correcting connection in order to communicate over 2400 bps. If you turn off error correction with &M0 then you will never connect over 2400 bps. The only time I ever turn this off (&M0) is when I'm calling some lame board that has lamer modems that choke during error correction negotiation and fail to connect. Turning this off will make for a quicker connection if you know the modem you are calling doesn't use error correc- tion. Error correction is negotiated depending on the link protocol. If the protocol is HST, the HST error correction is used. If it is v.32 then LAPM is used. Otherwise, LAPM is tried first then MNP 4, 3, and 2. Courier modems do not use MNP 1. Compression will not be used unless error correction is also used. &N0 === This setting permits the modem to negotiate for highest speed. If you set this to any other value, then only the speed for which you set it will be permitted. If the other modem doesn't support that speed then the connection will not be made. Using &N0 also activates the fallback and fall forward features of the Courier modem. Fall forward is not found in other modems. Most modems will fallback the connect speed if line condi- tions are poor. Courier modems use Adaptive Speed Leveling (ASL) which continue to monitor line conditions and when they improve, bring the speed back up. &R2 === This activates hardware flow control for use on received data. This is as important as the &H1 setting. Data coming in from the other modem can sometimes overrun the receiving modem and/or computer. This signal is lowered when the modem receive buffer is nearly full and is only raised when the buffer is near empty again. This signal is controlled by both your computer's serial port (in turn controlled by your communications program) and the modem itself. There can be a situation where your modem's buffer is not yet full but your computer is not ready to receive data. For example, if you are multitasking and the computer is busy accessing the disk for some other program. It may spend so much time doing the disk function that it can't keep up with the steady flow of data from the modem so it tells the modem to wait for a moment. Flow control is necessary at the speeds we are dealing with. If this setting is ignored then you will almost certainly fail during downloads. DIP SWITCH 9 - DOWN =================== I recommend changing your DIP switch number 9 to the down setting. The reason for does not effect performance, but gives you an opportunity to examine the condition of your connection while still connected. With switch 9 in it's default position, up, when you type the modem escape command, three plus signs with at least half a second of nothing before and after, the connection is hung up and you are returned to command mode. With it in the DOWN position, when you do this, you are returned to command mode but still connected to the other modem. While in command mode there is little you can do but one very useful command. Use ATI6 while in command mode to view the link diagnostics screen. Here you can see exactly how many characters you've sent and received since connecting. You can also see what speed you are currently communicating at (which could be lower because of bad line conditions and automatic fallback). You can see how many errors error correction has corrected. By looking at this screen you can see if the sudden slow down you had in the last file was because of line noise. This will also tell you how the connection was broken after it is broken. Was it a burst of line noise or did the sysop hit "Logoff". Look the ATI6 command up for an explanation of the various fields. It's too much to repeat here. BLINKY LIGHTS ============= What do all those lights on my external HST mean anyway. Well, mostly I'd tell you to look in your manual but there is something things you should know without having to dig this up. When the ARQ light is lite you have a connection with Error Correction (either LAPM or MNP). If the HS light is lite then you have a connection at over 2400 bps. The OH light is on as soon as the modem starts to dial and goes off when it hangs up the phone line. The CD light goes on when the modem is connected to another modem. This pretty obvious stuff. When the ARQ light is flashing, error control is functioning. I mean, that an error has been detected and is being corrected. ARQ stands for Automatic Repeat Request (got me why they didn't call it ARR) which is generic for error correction. When the MR light is flashing, the modem is retraining. That means that it is either falling backwards in speed due to excessive line noise or errors or it is falling forwards because conditions have improved. This is the time to use your +++ then ATI6 to see what speed you are at. Perhaps you've fallen so far down that it would simply be better to hang up and call back with a cleaner connection. If you are not connected to another modem then the AA light is lit if you are in auto answer mode. When you connect, the modem that has the high speed channel (when in HST mode) has the AA light lit. If you are down- loading, then it will be off. If you are uploading, after a brief moment (the MR light will flash while the HST reverses the line) the AA light will lite up telling you that you now have the full speed channel. v.32 modems do not exhibit this behavior as they never need to. TERMS/GLOSSARY ============== Here is a rambling guide to all the different terms that I used in this document. I'm putting it here because it's about time I explained some of these things and you'll need to know what they are before you can tackle the stuff that follows. PROTOCOL - This is a fancy term to use when you want to say, how something talks to something else. We use it here when we want to describe how one modem talks to another. Does it use v.32 or HST. A protocol is just a predetermined, ordered way of communicating that all parties agree on ahead of time. It is fixed. The specific protocol used can be negoti- ated prior to it's use, all modems do this. LINK NEGOTIATION - This is what goes on first when two modems begin talking to each other. The squeal and squawks you hear when a modem first begins to connect is the series of tones that the modems emit and detect when trying to find out what the other side has. In the simplest terms it's something like this: "Hi, I'm a modem, are you a modem too?" "Yes, I'm a modem. Are you a fax?" "No, I'm not a fax, are you?" "No, but I can talk using v.22, can you?" "Yes, I can, can you use v.22bis?" "Yes, I can, can you use HST?" "Sorry, never heard of it, how about v.32?" "Sure, I can do v.32, in fact, I can do v.32bis, can you?" "Wow! So can I! But first, tell me, can you handle LAPM? "I sure can." "How about v.42bis?" "My master won't let me the creep, wanna do it anyway?" "Naw, they'll catch us, let's just link and report back." "O.K." All you see, of course, is CONNECT 14400/ARQ/v32bis/LAPM. Had the devious modems misbehaved, there would have been a /v42bis on the end of that string. Why do some modems croak when you use your mighty HST to connect with a puny 2400 non-mnp modem? Because their negotiations goes something like this: "Hi, I'm a modem, are you a modem too?" "Yes, I'm a modem." Hmm, quiet type, "Oh, ok. Can you talk using v.22?" "Yes, I can, can you use v.22bis?" Maybe this guy isn't too bad, "Yes, I can, can you use HST?" "Huh? What?" oh-oh, "Can you use MNP 4" "Duh...wha?" "How about MNP 3 or 2?" "I'm so confused." "NO CARRIER" How rude. LINK PROTOCOL - This is what is first negotiated during Link Negotia- tion. This protocol is the means by which the two modem are actually talking to each other. It is the basis on which everything else is built. Mainly, it defines the speed of the two channels of communications. I'll mention the ones we're most interested in. HST - this has 14400 bps in one direction (the one most heavily used) and 450 bps in the other. (Old HSTs may only have 9600). v.32 - this has 9600 bps in both directions. v.32bis - this has 14400 bps in both directions. (v.22bis - 2400 bps in both directions.) Note that v.42 is not listed here. You may sometimes see BBSes advertising 19.2K or 38.4K HST, call here, we have the best Warez! These are signs of stupid/ignorant people. Their I.Q.'s are reflected in their insistence on spelling words that end in "es" with an "ez". Those speeds are the DCE/DTE port speed. There is no such thing as a 19.2K HST modem. Ignore these claims as you should claims that Elvis lives in Kalamazoo (he lives in Akron, of course). ERROR CONTROL PROTOCOL - This is the means by which the modems will correct errors during transmission. When one modem detects an error, usually caused by static on a phone line, it will send a request to the other modem to repeat the bad packet of data. When you see the ARQ light lit and get a /ARQ on the CONNECT line, you have an error controlled connection. The Courier line of modems has three, not two, types of error control available for it to use. Error control is not available for connections under 1200 bps. HST - Yes, there IS an error control protocol called HST as well as a link protocol. This protocol is a slightly more efficient version of MNP 4 also modified for the asymmetrical modulation used by HST modems (that's the high speed/low speed channels difference). This is a very low overhead protocol. The performance of this protocol is similar to MNP 4 (see below) and actually yields higher than normally expected throughput for a given data rate. For example, although the link is at 14400 bps, which would yield, at 10 bits per character (8 bits per byte, plus 1 start bit and 1 stop bit), an expected maximum rate of 1440 cps, it in fact returns throughput as high as 1740 cps. And the 1740 figure includes overhead for the transfer protocol (Ymodem-g). LAPM (Link Access Procedure for Modems) - This is part of the v.42 recommendation. It is used when an HST link is not made and is picked over MNP. It is NOT as efficient as the HST error control protocol. THIS is why a HST download at 14,400 bps is faster than the exact same download using v.32bis. v.32bis cannot use the HST error control protocol, only a HST connection can. This is why an HST connection is preferred over a v.32bis when doing transfers in one direction only. LAPM provides a throughput of only about 118% of expected. It is argued that LAPM is more robust than MNP and would fair better during a cellular phone call. I have no evidence to support this (and ask, what about MNP 10?). MNP 2-4 - The modems will attempt to use the highest version of MNP they can, as each level is better than the previous. At level 3, performance is break even with a non-error control connection. At level 4, performance is actually better, yielding about 120% of the normal expected throughput (i.e., a 2400 bps connection yields about 280+ cps transfer versus the expected 240 cps maximum at MNP 3 or non- error control). Fortunately, there is little choice here. You either have error control on or off. You cannot select one over the other. The Link Protocol will determine which is present on the other end and respond in kind. The good part is that by having all the options in one box you are sure to get the best possible connection with all other modems. v.42 - v.42 by itself is not a protocol, instead it is a (quoting the HST manual now): "standard for modem communications that defines a two- stage process of detection and negotiation for LAPM error control." I'm not sure why they didn't call LAPM v.42 or v.42 LAPM. It's too bloody confusing. Basically, forget v.42. There is LAPM (the error control) and v.42bis (the compression), just remember those two. Note also, v.42 supports the use of MNP levels 1-4 when a LAPM error control cannot be negotiated. This is what allows v.42 compliant modems to connect to older, MNP only modems. This is the wisest part of the v.42 standard. COMPRESSION PROTOCOL - The Courier modem supports two types of compression, v.42bis and MNP level 5. v.42bis is the newer and more efficient protocol. MNP 5 was first but is not nearly as good. If the other side has both protocols (and you are using compression) then v.42bis will be picked over MNP 5. In cases where the answering side has MNP 5 but not v.42bis you can have your Courier not use compression for this session but be ready to make a v.42bis link whenever next possible by using the &K3 option. This option only permits v.42bis compression and denies the less efficient MNP 5. If you are going to use compression, this is a very desirable feature and are, as far as I know, exclusive to the Courier line of modems. TO USE COMPRESSION OR NOT TO USE COMPRESSION plus WHICH COMPRESSION TO USE IF I DO ================================================= This is one of the "fun" parts of this document. Readers familiar with my first two revisions of this document (this is a complete rewrite, by the way) will recall that in those I recommended flatly against using any data compression. I still maintain that if you want the very fastest transfers possible you should not use data compression when transferring compressed files. Of course, if you were transferring non-compressed files I would easily suggest using v.42bis. But, read on, there are many things to consider. First, what do you really want? Do you want to go fast, really fast. Do you intend on performing transfers in one direction at a time? Are you transferring compressed (ZIP, ARC, LZH, ARJ, GIF) files? If you answer yes to all of these, do not use any compression and use HST whenever possible. This will result in the fastest possible transfers, bar none. I'll stake my reputation on it (and have). If you use Ymodem-g (as provided by DSZ or GSZ from Omen Technology and use a 16550A UART) for your transfer protocol then you can except your transfers to reach as high as 1740 cps. Higher than that has been recorded but I attribute to the relatively coarse resolution of the PC timer (approximately 1/18th of a second) used in the calculations. Some people have reported faster times with other protocols but after I timed them using external timers and higher resolution hardware clocking methods I've discovered that the authors of these protocols, shall we say, enhanced their calculations just a tiny bit... If you don't mind loosing just a little speed, we're talking about 2% here, then go ahead and leave v.42bis on all the time. Use the &K3 I recommend at the beginning of this file. It will screen out MNP 5 which is deadly slow but let v.42bis calls connect. Instead of 1740 cps as a maximum, expect 1710 as the maximum with the average being just under 1700. On GIF files you may even see just a bit higher, but there is a lot that could effect that. For example, non-interlaced GIFs transfer slightly slower than interlaced ones. Dithered images transfer slightly slower than non-dithered. Don't worry about it too much, it's only by a few cps. Do you enjoy waiting for your computer to grind through a download? Got nothing better to do then watch your modem lights flicker? Go ahead, use MNP 5. It's your time, not mine. But don't do it on boards I call please, I actually dislike busy signals! Lemme draw ya a little chart that outta help a lot: HST v.32bis v.32 14,400bps 14,400bps 9600 bps ͻ None 1710-1740 1670-1700 900-1120 Ķ v.42bis 1650-1710 1620-1690 880-1110 Ķ MNP 5 1450-1575 1400-1520 600-750 ͼ Transfer Speeds Using Ymodem-g Reduce these figures by about 3% if you are using Zmodem-90 (Moby- Turbo) or HS/Link. If you are using HS/Link and a v.32 protocol, then you can expect to get these figures, minus 3-5%, in both directions simulta- neously. v.32bis can expect a combined transfer rate of about 3250-3350 cps, which is quite spectacular. Remember to try to keep your upload and download bytes about the same or one channel goes unused eventually. Performance only picks up by 1-2% in unidirectional transfer mode with this protocol. TRANSFER PROTOCOLS - WHICH TO USE AND WHY ========================================= If you want to move a file from A to B in as short a time as possible, use Ymodem-g. It's as simple as that. Ymodem-g doesn't wait for an acknowledgment from the receiver that data is getting there correctly, it just keeps shoving it down the line, only subject to flow control (hardware flow control is very important at this point). Also, Ymodem-g uses only a 16-bit CRC, this is both faster and smaller than the 32-bit CRCs used by Zmodem and HS/Link. Ymodem-g is also very plain. It has no special features, it's very simple and works very fast. Fortunately, it is also a batch protocol and doesn't require user entry of file names to receive. All these features combine to make it a very good choice for your default high speed protocol. Omen Technologies has a shareware protocol driver called DSZ (and a slightly more "graphical" version called GSZ which contains the same protocol's but with a nicer display and, fortunately, the same command line interface) which provides the fastest version of Ymodem-g I've been able to find. This driver also provides the only source for Zmodem-90. This makes this driver very valuable to have. In order to use the Ymodem-g portion, you have to register this program. It is shareware well worth the invest- ment, I suggest it for anyone into modeming. The Zmodem-90 is free. Make sure to get the latest version. Once you register, you get all updates free via BBSes around the world. Zmodem-90, or MobyTurbo, is a very powerful protocol. It has many, many features with terrible documentation and an equally annoying command line interface (for example, everything must be typed in lower case. Give me a break, what is this, UNIX? ugh). If it wasn't so good, no one would use it but credit is given where credit is due. It works and it works damn good. It is about 2-4% slower than Ymodem-g. This is mostly due to the fact that a lot more control information (which is all considered overhead) is being transferred along with actual file data. Zmodem uses 32-bit CRC values, twice the size of Ymodem. Also, it passes error control informa- tion twice the size or more than that of Ymodem. When an error occurs, this is very useful to have around. If you have an error free, reliable link then this is all extra baggage that no one wants. On my own system, I use Ymodem-g for all my unidirectional transfers. On the rare occasion that an error occurs (9 times out of 10 this is because I did something in another Desqview window that caused the computer to pause for an unusually long period of time and therefore drop a character at the serial port that the 16 byte FIFO buffer in my 16550A couldn't hold) I resume the download at where it was aborted using Zmodem's Crash-recovery feature. If you've ever crashed just 5 Kb away from finishing a 5 megabyte download you'll immediately appreciate the benefit of this. The second most popular reason for using Zmodem over Ymodem-g is that Zmodem is free, Ymodem-g isn't. When using DSZ (instead of GSZ), try to use the .EXE version. It is slightly faster at calculating the CRC but best of all, allows you to specify a larger receive buffer, 16 Kb versus only 4 Kb with the .COM version. This alone can generate a few cps speed improvement. GSZ.EXE has these features and only comes in an .EXE form. I would suggest to Omen to drop the confusing double format (released in separate files too!) and continue only on with the .EXE forms. To use this larger buffer, you should specify "-pB16384" on the command line. The "p" must be in lower case and the "B" in upper case. Use this for both Ymodem-g and Zmodem. Also, to use Hardware flow control you must specify "handshake on" on the command line too. This can be abbreviated to "ha on" in lower case only. If you have a v.32 modem, especially a v.32bis, and you are planning on both uploading and downloading from the same place then bless the gentleman who wrote HS/Link. The new protocol is exactly what Dual Standard owners around the globe needed. It lets you perform simultaneous uploading and downloading at full speed ahead (about the same or slightly slower than Zmodem-90) with a very easy, friendly user interface. If you have a Dual Standard and HS/Link, there is no reason not to upload to your favorite board. Support the BBS ideal, spread good files everywhere. You're going to be on-line download anyway, why not stop being a leech and contribute. You'll gain respect from your peers (and more importantly, the Sysop). HS/Link basically has all the features of Zmodem-90. It is almost as fast (but if you were doing unidirectional transfers, use Ymodem-g or Zmodem-90 instead for max speed) but a whole lot friendlier to setup. Once setup, all three protocols are easy to use. HS/Link also uses 32-bit CRC for error control but that is redundant in a error controlled connection. It's there for 2400 bps users (they have 2400 in both directions so can benefit from HS/Link as well, and at 2400, you need all the help you can get!). It can also perform crash recovery and it has the most efficient error recovery schemes I've ever seen. Instead of bringing the entire transfer to a halt, rewinding past good data and resending from the bad block forward, back over what was otherwise good data. HS/Link requests only the block that was bad, receives it whenever the sender has a pause to do so, inserts it where it belongs and all in the meanwhile is speeding ahead with the rest of the file. Fantastic! Let's hope that in later versions the author finds some way to speed things up (perhaps with a 16- bit CRC option and larger block sizes). HS/Link also is shareware and I would recommend you register it to promote further development. However, unlike DSZ, it is not performance crippled. The shareware version provides a full features set, only the display as somewhat affected. When using HS/Link, remember to increase the default block size to 4 Kb by using "-B4096" on the command line. Additional performance MAY be gained by using either -A or -W16. I haven't finished testing these options fully to recommend one over the other yet. The -A turns off all acknowledgments between blocks and -W16 increases the gap between acknowl- edgments from the default 8 to 16 (the maximum). We do this because assuming error free conditions, we should not require acknowledgments. This should bring us closer to Ymodem-g performance by eliminating unneces- sary overhead. This file was typed February 9-10 during a Diet Pepsi and Domino's Pizza binge. It was updated because of new data collected after updating to a v.32bis Dual Standard modem. The data presented in earlier versions is still accurate except that now I have clarified my recommendations regarding compression and have changed the default (easy) suggestion to using v.42bis. What You Need To Know About Modems Part 2 December 25, 1991 Version 1.0 ------------------------------------------------------------------------------ Copyright (c) 1991 Patrick Chen. All rights reserved. Distribution Notice: This document may be distributed by electronic bulletin boards and commercial on-line services. This document may not be edited or changed in any way for redistribution. This article is Part One of a three-part report entitled "The Joy of Telecomputing." As a plain ASCII file, it cannot contain any of the illustrations and graphic elements provided in the printed version. For further information about "The Joy of Telecomputing," see Appendix C. This article should be useful to anyone interested in high-speed modems (or 2400 bps modems with MNP-5 or V.42bis). Most modems mentioned in this article are external units. These modems can be used on any microcomputer system, be it a PC, a Macintosh or an Amiga. Although only certain communication programs are used as examples, the discussions about setting up software apply to packages not covered herein. It is assumed that the reader knows the basics about going online. For example, we would not discuss how to connect an external modem to your computer, nor would we explain what 8-N-1 means. This file is in the IBM ASCII format. Each line ends with a linefeed and a carriage return. If you use a Macintosh, open the file with a text editor and get rid of the linefeeds. (I recommend McSink, a shareware text editor widely available. Just launch McSink and open the file, then choose the Convert menu and select Strip Linefeeds.) To print this document, use a 10-pitch (12 characters per inch) mono-spaced font such as Courier. Every effort has been made to supply complete and accurate information. However, information contained herein is subject to change without notice and should not be construed as a commitment by the author who assumes no responsibilities for any errors that may appear. Trademarks: The author has attempted throughout this document to distinguish proprietary trademarks from discriptive terms by following the capitalization style used by the manufacturer. ----------------------------------------------------------------------------- CONTENTS Introduction Modulation Protocols 2400 bps modems High-speed modems V.32 V.32bis U.S. Robotics HST Telebit PEP Hayes Express 96 CompuCom CSP Things to come V.fast ISDN Error Control Protocols V.42 and MNP-4 V.42 & MNP-4 can provide error-free connections V.42 and MNP-4 can improve throughput Are MNP 4/V.42 useful? Data Compression Protocols MNP-5 & V.42bis Are MNP-5 & V.42bis useful? Compression by Software vs. MNP-5/V.42bis Local Flow Control and Data Buffering Macintosh and high-speed modems PC and UART Profiles of High-speed modems ATI 9600etc/e CompuCom SpeedModem Champ/Star/Storm Hayes modems Image Communications: Twincom 96/42 Intel 9600EX & 14.4EX Practical peripherals PM9600SA & PM9600 Prometheus modems Telebit modems U.S. Robotics modems Zoom V.32 Turbo Modems Things to come Buying a High-speed Modem Should you pay the extra for a V.32bis modem? Should you buy a modem with a proprietary modulation protocol? Should you buy a 2400 bps modem with V.42bis? Beware of the ads Setting Up Software to Work with High-speed Modems The Proper Software Setup Does Your Software Initialize the Modem Properly? Does Your Software Configure Itself to Match the Modem Settings? Why You May Need to Change the Initialization String Editing the Initialization String Match Software Settings To the Modem Settings Configuring Popular Communications Software to Work with High-speed Modems Procomm 2.0 Telix Qmodem HyperAccess 5 Crosstalk for Windows MicroPhone II (for Macintosh) ZTerm (for Macintosh) Other Settings for Your Communications Software Telephone Number Dial String: ATDT 8-N-1 or 7-E-1 (data bits-parity-stop bits) Half vs. Full Duplex: Local Echo Terminal Emulation Comm Port File Transfer Protocols ASCII Xmodem Xmodem-1K Ymodem Ymodem-g Zmodem Kermit Sealink Which file transfer protocol should you use? Appendix A: Resources Appendix B: How to reach the author Appendix C: About "The Joy of Telecomputing" ------------------------------------------------------------------------- Introduction Buying and using a modem used to be relatively easy. Not so long ago, almost all modems are 1200 or 2400 bps units and they are all compatible with the Hayes Smartmodems (although some are more Hayes-compatible than others). How time has changed. Today, modems not only run faster, they are also loaded with features like error control and data compression. Suddenly, you are confronted with all the buzzwords: V.32, V.32bis, V.42, V.42bis, MNP-5, LAP-M, etc. What do they mean? And what do they mean to you? To make the most of a high-speed modem, you need to understand three different kinds of protocols and the relationships among them. They are the modulation protocols, error control protocols and data compression protocols. Modulation Protocols Modem stands for MOdulator/DEModulator. A modem converts digital signals generated by the computer into analog signals which can be transmitted over a telephone line and transforms incoming analog signals into their digital equivalents. The specific techniques used to encode the digital bits into analog signals are called modulation protocols. The various modulation protocols define the exact methods of encoding and the data transfer speed. In fact, you cannot have a modem without modulation protocols. A modem typically supports more than one modulation protocols. The raw speed (the speed without data compression) of a modem is determined by the modulation protocols. High-speed modems are modems that feature modulation protocols at 9600 bps or higher. A 2400 bps modem with data compression that can theoretically yield a 9600 bps throughput is not a high-speed modem. "CCITT" is a French acronym for the International Telegraph and Telephone Consultative Committee. CCITT, a United Nations agency, is an international telecommunications standards committee that makes recommendations on a broad range of subjects concerning data communications. 2400 bps Modems A 2400 bps Hayes-compatible modem typically supports the following modulation protocols: Bell 103 (300 bps U.S. Standard) Bell 212A (1200 bps U.S. Standard) CCITT V.22 (1200 bps standard used outside the U.S.) CCITT V.22bis (2400 bps International Standard) Some 2400 bps modems also support the following protocols: CCITT V.21 (300 bps standard used outside the U.S.) CCITT V.23 (1200/75 and 75/1200 bps, used in Europe) In the past, most 2400 bps modems do not support any error correction or data compression protocols. Recently, however, many modem manufacturers have introduced 2400 bps modems with extra features like data compression, error correction and fax capability. High-speed Modems There are two standard modulation protocols for high-speed modems: V.32 and V.32bis. Both are standards established by the CCITT. V.32 This is the standard for 9600 (and 4800) bps modems. CCITT V.32 is adopted by the CCITT in 1984. But the market has not taken off until recently. V.32 modems used to cost more than modems using proprietary modulation protocols (Hayes introduced the Smartmodem 9600, a V.32 modem, in 1988 with a $1999 price tag). But it is no longer true. At present, street prices for most V.32 modem are below $500. Every modem manufacturer is making V.32 modems now. Packet-switching networks like Sprintnet (Telenet) and CompuServe are also starting to support V.32 modems. Companies that make modems with proprietary modulation protocols are making modems with "dual standard." U.S. Robotics, Telebit, Hayes and CompuCom all have modems that support V.32 and their own proprietary protocols. V.32bis V.32bis, established in early 1991, is the CCITT standard for 14400 bps modems. A V.32bis modem also can fall back to 12000, 9600, 7200 and 4800 bps. V.32bis is downwardly compatible with V.32. Unlike 2400 bps modems where a single modulation protocol (V.22bis) is supported by all modem makers, there are several proprietary modulation protocols used by modems from different manufacturers. U.S. Robotics HST (High Speed Technology) Until the recent surge of V.32 modems, the U.S. Robotics HST was the de facto standard in the PC-based BBS community. U.S. Robotics introduced the Courier HST modem in 1986 and pioneered the market for high-speed modems in the IBM PC environment. The immense popularity of the HST modems was partly due to the generous discount program U.S. Robotics offered to the BBS Sysops (SYStem OPerators). Many modem manufacturers have implemented similar Sysop discount programs, but most BBS sysops remain loyal to the U.S. Robotics modems. The original Courier HST modem ran at 9600 bps. U.S. Robotics later improved the speed of the Courier HST to 14400 bps. Although U.S. Robotics remains committed to the HST modems, there are now three different high-speed Courier modems available: the Courier HST (which only supports the HST protocol), the Courier V.32bis (which only supports V.32bis) and the Courier HST Dual Standard (which supports both the HST and the V.32bis protocols). Telebit PEP (Packetized Ensemble Protocol) Telebit introduced the TrailBlazer in 1985 that employed a proprietary modulation protocol called PEP. While the Courier HST is popular among BBS, Telebit modems dominate the UNIX UUCP and Usenet communities. (Usenet, UUCP and the Internet are discussed in Part II of "The Joy of Telecomputing"). The TrailBlazer Plus owes its success partly to its built-in support for the UUCP g-protocol, thus allowing efficient and flawless UUCP session. PEP also performs well even with noisy telephone lines. The actual throughput is around 14400 bps. The TrailBlazer Plus has an installed base of more than 120,000 units. Telebit also introduced a cheaper (and slower) PEP modem, the T1000, in 1988. Hayes Express 96 Hayes entered the high-speed modem arena in 1987 with the introduction of the V-series Smartmodem 9600. The modem used a proprietary modulation protocol called Express 96 (also known as Hayes "Ping Pong" protocol). The V-series modems have not been as successful as the U.S. Robotics or the Telebit modems. CompuCom CSP (CompuCom Speed Protocol) While every modem manufacturer is jumping on the V.32 bandwagon, CompuCom bucked the trend and came out with the SpeedModem Champ in early 1991. It's a 9600 bps modem with a proprietary modulation protocol called CSP. The SpeedModem Champ has one strong selling point. It is the only modem with a proprietary protocol that costs less than a generic V.32 modem. The internal SpeedModem Champ is priced at $169. An external version is available for $199. Hundreds of PC-based bulletin board systems have installed the SpeedModem Champ. The Champ also works as a Hayes-compatible 2400 bps modem with MNP 2-4 error control and MNP-5 data compression. Two modems can establish a connection only when they share a common modulation protocol. To connect at high speed, two modems have to support the same high-speed modulation protocol. Therefore, a modem with a proprietary modulation protocol can only establish a high-speed connection with another modem from the same manufacturer. A U.S. Robotics HST modem can only establish a high-speed connection (at 9600 or 14400 bps) with another HST or an USR Dual Standard modem. A Courier HST modem cannot establish a high-speed connection with a Courier V.32bis modem. They can only connect at 2400 bps. (All high-speed modems in the market support the CCITT V.22bis modulation protocol). On the other hand, two V.32 modems can talk to each other at 9600 bps. They do not have to be from the same manufacturer. Two V.32bis modems can talk to each other at 14400 bps. A V.32 modem can talk to a V.32bis modem at 9600 bps. Things to come V.fast CCITT is working on a new modem standard, dubbed V.fast. If all goes well, the next modem standard can materialize before 1993. A V.fast modem is expected to reach a raw speed of 19,200-24,000 bps over standard dial-up telephone lines. ISDN In a couple of years we may not need modems at all. Integrated Services Digital Network (ISDN) has been coming for years. When will ISDN really become available for the rest of us? It depends on your local telephone company. It is estimated that by the end of 1994 about half the telephone connections in the U.S. will has access to it. With ISDN, you won't need a modem since no modulation or demodulation will be necessary. You will need an ISDN adapter instead. An ISDN line carries three digital channels: two "B" channels that carry various kinds of data at 64,000 bps and a "D" channel at 16,000 bps that can carry control signals or serve as a third data channel. A single ISDN channel can transfer uncompressed data bidirectionally at 64,000 bps. Combine that with a data compression scheme and you will be able to transfer data at hundreds of kilobits per second. Eventually, ISDN will provide widely available, low-cost digital communications for voice and data communication. Until ISDN is firmly in place, high-speed modems will be with us for a while. Error Control (Error-Correcting, Error Correction) Protocols Besides high-speed modulation protocols, all current models of high-speed modems also support error control and data compression protocols. V.42 and MNP-4 There are two standards for error control protocols: MNP 4 and V.42. The Microcom Networking Protocol, MNP, is developed by Microcom. MNP 2 to 4 are error correction protocols. MNP-5 is a data compression protocol. V.42 is established by CCITT. V.42 actually incorporates two error control schemes. V.42 uses LAP-M (Link Access Procedure for Modems) as the primary scheme and includes MNP-4 as the alternate scheme. Therefore, a V.42 modem will be able to establish an error-controlled connection with a modem that only supports MNP 4. A modem that uses a proprietary modulation protocol may also use a non-standard error control protocol. For example, Hayes V-series Smartmodem 9600 supports an error control protocol called LAP-B. CompuCom's SpeedModem Champ also uses a non-standard error control protocol. V.42 & MNP-4 can provide error-free connections Modems without error control protocols, such as most 2400 bps Hayes-compatible modems, cannot provide error-free data communications. The noise and other phone line anomalies are beyond the capabilities of any standard modem to deliver error-free data. V.42 (and MNP 2-4) copes with the phone line impairments by filtering out the line noise and automatically retransmitting corrupted data. If you have used a standard Hayes-compatible modem, you probably notice some garbled characters (like "@8d_\nw`[ce") show up on your screen from time to time. When two modems establish an error-controlled connection, they are said to have a reliable link and are capable of filtering out those garbled characters caused by the line noise. Notice that the line noise is still there, it just does not show up on your screen or the screen on the remote system. The filtering process used by V.42 (and MNP 2-4) is similar to the error correction scheme used by file transfer protocols (such as Xmodem). The two modems use a sophisticated algorithm to make sure that the data received match with the data sent. If there is a discrepancy, the data is resent. What is the difference between error control protocols (such as V.42) and file transfer protocols (such as Xmodem)? For one thing, file transfer protocols provide error detection and correction only during file transfers. File transfer protocols do not provide any error control when you are reading e-mail messages or chatting with other people online. In other words, an error control protocol is "on" all the time during your online session and file transfer protocols are "on" only some of the times, namely when you are sending or receiving files. Even though an error control protocol is "on" all the time, we still need file transfer protocols when two modems establish a reliable link. A modem works with bit streams, timing and tones. It does not understand what a file is. When you download or upload a file, your communications software needs to take care of the details related to the file: the filename, file size, etc. This is handled by the file transfer protocol which does more than error-checking. Some file transfer protocols, most notably Ymodem-g and Imodem, are developed to handle file transfer without performing any error-checking. The idea of using a protocol like Ymodem-g is to eliminate the redundancy thus improve the transfer speed. Ymodem-g and Imodem should only be used with modems that provide built-in error control protocols. These file transfer protocols do not provide any error-detection or recovery capability. If a problem occurs during the file transfer, the transfer session will be aborted. Protocols like Ymodem-g or Imodem depend on the modems to provide assurance for the integrity of data being transferred. However, you should know that a reliable link between two modems does not provide absolute guarantee for the data integrity during file transfer. When you call a remote computer, there are really three links involved in the process. Besides the link between the two modems, there are still one link between your computer and your modem and another link between the remote modem and the remote computer. When two modems make a reliable connection using V.42 or MNP 4, only the data integrity between the two modems is ensured. It is still possible for errors to occur at either end between the serial port and the modem (in the cable) or in the computer itself. (Fortunately, such errors are rare.) For extra protection, you may still want to use a file transfer protocol - such as Zmodem - which also performs error checking even if you have a reliable link with the remote system. There is a common misconception that Ymodem-g is much faster than other file transfer protocols. Although Ymodem-g is significantly faster than Ymodem, it offers little over Zmodem. Zmodem has proven to be extremely efficient. (See benchmark below) Filename Ymodem Ymodem-g Zmodem ------------------------------------------------------- the-wave.txt 1527 cps 3261 cps 3296 cps dayrpt.arc 761 1042 1025 dayrpt.wks 1244 2314 2337 sunset.arc 745 987 965 sunset.pic 1297 2594 2588 text109k.arc 814 1089 1064 text109k.txt 1351 2812 2885 Note: The seven test files used throughout this article are available on the Hayes BBS (800-874-2937). It is an excellent source for information about Hayes products. The BBS also provides a database for thousands of BBS in the U.S. Best of all, it is free. Unless noted otherwise, the results are obtained by using the following: Computer: Mac SE with Mobius Two Page Display with 68030 accelerator Modem: ATI 9600etc/e (the modem is set as V.32 with V.42bis enabled) Operating System: System 7.0 Communication Software: ZTerm (Comm port speed set to 38400 bps) File Transfer Protocol: Zmodem All results are reported by ZTerm. (I use several communication programs on both IBM PC and Mac. All of them show the average throughput while file transfer is in progress, but ZTerm actually produces a report after the transfer is completed). V.42 & MNP-4 can improve throughput The other benefit of V.42 (or MNP 4) is that it can improve throughput. Before sending the data to a remote system, a modem with V.42 (or MNP 4) assembles the data into packets and during that process it is able to reduce the size of the data by stripping out the start and stop bits. A character typically takes up 1 start bit, 8 data bits and 1 stop bit for a total of 10 bits. When two modems establish a reliable link using V.42 or MNP 4, the sending modem strips the start and stop bits (which subtracts 20% of the data) and sends the data to the other end. The receiving modem then reinserts the start and stop bits and pass the data to the remote computer. Therefore, even without compressing the data you can expect to see as much as 1150 characters per second on a 9600 bps connection. (Although the modem subtracts 20% of the data, the speed increase is less than 20% due to the overhead incurred by the error control protocol.) Here are the test results obtained by downlaoding the same file (1) without any error control protocol, (2) with MNP-4, and (3) with V.42. No data compression protocol is used. Filename No EC MNP-4 V.42 ------------------------------------------------------------------ the-wave.txt 935 cps 1151 cps 1128 cps dayrpt.arc 863 1023 1002 dayrpt.wks 898 1071 1052 sunset.arc 838 971 953 sunset.pic 903 1080 1065 text109k.arc 908 1085 1064 text109k.txt 937 1150 1127 Are MNP4 and V.42 useful? Absolutely. Anyone that has ever used a standard modem can appreciate the benefit of an error-free connection. And the increase in data throughput, though modest, is nothing to sneeze at. Data Compression Protocols Besides error control protocols, all current high-speed modems also support data compression protocols. That means the sending modem will compress the data on-the-fly and the receiving modem will decompress the data to its original form. MNP-5 and V.42bis There are two standards for data compression protocols, MNP-5 and CCITT V.42bis. Some modems also use proprietary data compression protocols. A modem cannot support data compression without utilizing an error control protocol, although it is possible to have a modem that only supports an error control protocol but not any data compression protocol. A MNP-5 modem requires MNP 4 error control protocol and a V.42bis modem requires V.42 error control protocol. Also note that although V.42 include MNP-4, V.42bis does not include MNP-5. However, virtually all high-speed modems that support CCITT V.42bis also incorporate MNP-5. The maximum compression ratio that a MNP-5 modem can achieve is 2:1. That is to say, a 9600 bps MNP-5 modem can transfer data up to 19200 bps. The maximum compression ratio for a V.42bis modem is 4:1. That is why all those V.32 modem manufacturers claim that their modems provide throughput up to 38400 bps. Are MNP-5 and V.42bis useful? Don't be fooled by the claim. It is extremely rare, if ever, that you will be able to transfer files at 38400 bps. In fact, V.42bis and MNP-5 are not very useful when you are downloading files from online services. Why? How well the modem compression works depends on what kind of files are being transferred. In general, you will be able to achieve twice the speed for transferring a standard text file (like the one you are reading right now). Decreasing by 50% means that you can double the throughput on the line so that a 9600 bps modem can effectively transmit 19200 bps. V.42bis and MNP-5 modem cannot compress a file which is already compressed by software. In the case of MNP-5, it will even try to compress a precompressed file and actually expand it, thus slow down the file transfer! Here are the test results obtained by downloading the three compressed files using (1) MNP-4 without data compression, (2) MNP-5, (3) V.42 without data compression, and (4) V.42bis. Filename MNP-4 MNP-5 V.42 V.42bis ------------------------------------------------------------------- dayrpt.arc 1023 cps 946 1002 1010 sunset.arc 971 935 953 950 text109k.arc 1085 988 1064 1053 If you have ever downloaded files from a BBS or online service, you know that almost all files are in a compressed format. Therefore, you should only expect to see an actual throughput between 950 to 1100 cps even if your V.32/V.42bis modem is supposed to offer throughput "up to" 38400 bps. Most PC files are in the ZIP format. Macintosh files are typically in the .SIT (Stuffit) or .CPT (Compact Pro) format. Amiga files are usually in the ZOO, ARC or LZH format. Note that GIF files are also in a compressed format. Compression by Software vs. MNP-5/V.42bis There are several reasons why compression software programs (such as PKZIP or Stuffit) are superior to MNP-5 or V.42bis. 1. Compressed files save disk storage space. 2. Compression software programs are more versatile. Most of them allow you to group several files in a compressed file archive to ensure that all the related files get transferred at the same time. 3. Software compression is more efficient than on-the-fly modem compression. In the case of a small file, this may not make much difference. But the difference can be significant when you are transferring large files. Filename Size Time Throughput ----------------------------------------------------------------- the-wave.txt 143579 bytes 43 seconds 3296 cps dayrpt.arc 8423 bytes 8 seconds 1010 cps dayrpt.wks 19712 bytes 8 seconds 2337 cps sunset.arc 5084 bytes 5 seconds 950 cps sunset.pic 16391 bytes 6 seconds 2643 cps text109k.arc 29775 bytes 28 seconds 1053 cps text109k.txt 111386 bytes 39 seconds 2822 cps As we can see from the test results, it is about 30% faster to transfer the compressed file text109k.arc than to download the text file with V.42bis. Hayes BBS does not provide a compressed version for the file the-wave.txt. Using PKZIP (for PC) and Stuffit (for Macintosh), we obtain the following results: the-wave.zip: 6812 bytes (PKZIP) the-wave.sit: 6081 bytes (Stuffit) Assuming a transfer speed of 1000 cps, the compressed file can be downloaded in 7 seconds. That's six times faster than downloading the text file with V.42bis! Here is another example. Spider Island Software BBS (714-730-5785) has a test file called One-Minute Max. It is a Macintosh TIFF file (file size 206,432 bytes). According to Spider Island Software, the file can be downloaded in 56 seconds (with an effective throughput of 3745cps) with a V.32/V.42bis modem. The result may seem impressive at first. However, the file can be compressed to 6065 bytes (with Compact Pro) or 7385 bytes (with Stuffit). Assuming a transfer speed of 1000 cps, it would only take 6-8 seconds to transfer. Again, it is seven to nine times faster than downloading the file with V.42bis. On-the-fly modem compression does have one advantage. It is more convenient. You can send a file without compressing it first and the recipient does not need to decompress the file. Local Flow Control and Data Buffering To get the most from a modem with data compression, you'll want to send data from your PC to the modem as quickly as possible. If the modem is idle and waiting for the computer to send data, you are not getting the maximum performance from the modem. For example, you have a V.32/V.42bis modem and you want to send a text file to a remote system which also has a V.32/V.42bis modem. Let's assume the modem is able to send the file at 20000 bps using V.42bis. If your computer is sending data to your modem at 9600 bps, your modem will have to stop and wait to receive data from your computer. To get the maximum performance, you want to set the computer to send data to the modem at 38400 bps (the maximum a V.32/V.42bis modem can achieve). Since the modem can only send the file to the other modem at 20000 bps, it will never have to wait. Here are the test results for downloading the text file the-wave.txt by setting the communication port at different speeds: the-wave.txt: 946 cps (modem port speed 9600 bps) 1885 cps (modem port speed 19200 bps) 3296 cps (modem port speed 38400 bps) However, there is a new problem. Since your computer is sending data faster than the modem can handle, there needs to be some ways for the modem to ask the computer to stop sending data. Otherwise, data loss is sure to occur. This is where local flow control comes into play. A high-speed modem typically supports two kinds of local flow control: hardware handshaking (CTS/RTS) and software handshaking (XON/XOFF). Of the two, hardware flow control is the preferred method. We have mentioned earlier that there are three links involved when you are connected to a remote system: 1. The link between your computer and your modem 2. The link between the modems 3. The link between the remote modem and the remote computer Local flow control is used for the first and third links. Notice that the first link may not use the same kind of flow control as the third link. Hardware flow control (or hardware handshaking) works by altering voltage levels on the RTS (Request To Send) and CTS (Clear To Send) signal lines at the RS232 serial interface between the modem and the computer. CTS is used by the modem on the sending end of a transmission. When the local modem is ready to receive data, it sends the CTS signal to the local computer and the computer starts transferring data. If the modem is unable to accept the data as fast as it is received from the computer, the modem will disable the CTS to inform the computer that the modem buffer is almost full (A high-speed modem typically contains a small amount of RAM which is used to provide data buffers). The computer will then suspend data transfer. Once the local modem has emptied its buffer by transmitting data to the remote modem, it will enable CTS again. RTS is used by the computer on the receiving end of a transmission. When the computer cannot accept data at the rate at which the modem is passing data, it will disable RTS. The computer enables RTS again when it is ready to resume receiving data from the modem. Software flow control (or software handshaking) is achieved by embedding control character in the data stream. XON and XOFF are the most commonly used control characters. XON is also known as Control-Q or DC3 (ASCII 19) while XOFF is known as Control-S or DC1 (ASCII 17). The use of XON and XOFF during data transfer can create problem when a binary file contain the Control-S (^S) character as a legitimate part of the data. Do not use this method if ^S and ^Q are part of the transmitted data. Macintosh and High-speed Modems If you use a Macintosh with a high-speed modem, you will need a special modem cable that is wired correctly to support hardware handshaking. You can order the cable from most mail-order companies that sell high-speed modems. I got mine from Maya Computer (800-541-2318) for $10 (plus $2.50 for shipping & handling). Unfortunately, the cable did not work with my SE. The cable is good since it worked fine on a Mac IIsi. It just refused to work on my SE. I was disappointed but not surprised. After all, my SE is equipped with a 25 Mhz 68030 accelerator. (Well, it is actually both an accelerator and a video adapter for a 19 inch dual-page monitor.) Since I will never want to run my SE without the accelerator, I have no choice but to use software handshaking. PC and UART (8250, 16450, 16550) Your PC's serial port has a UART (Universal Asynchronous Receiver/Transmitter) chip to control the input/output. The XT usually has an 8250 UART, the AT usually has a 16450 UART. If you are running Windows, Desqview, OS/2 or any other multitasking environment, you should upgrade your UART with the 16550 (if your PC does not already have one). The 16550 is standard in most IBM PS/2 and many 386-based computers. The 16550 UART has a 16 bytes FIFO (first in, first out) buffer that helps to prevent degradation when several programs are running at the same time. If you use an external modem, the UART is in your computer (either on the motherboard or on an I/O card that has the serial port). If you use an internal modem, the UART is on the modem. (Both internal modems from Practical Peripherals and Zoom use the 16550 UART. The Twincom 96/42 uses a 16450. The CompuCom SpeedModem Champ, due to its unique design, does not use a standard UART.) Even if you have a 16550 UART, the communication software that you use will need to support it. Fortunately, the most recent versions of popular communications programs are all designed to support the 16550 UART. Hayes ESP (Enhanced Serial Port) Hayes makes an adapter called Enhanced Serial Port (ESP) that has two serial ports complete with an on-board coprocessor. The ESP can save your PC's CPU from having to manage the work load. If a 16550 UART is not good enough for you, the ESP may be the only answer. Profiles of High-speed Modems Here are profiles of some high-speed modems. The list is not comprehensive, nor is it intended to be. Unless noted otherwise, the street price quoted are from PC Connection (800-243-8088) in PC Magazine (12/31/91). PC Connection generally does not offer the lowest price, but the service is excellent. I have dealt with PC Connection and MacConnection (800-800-4444) for years and have yet to be disappointed with their services. Unless noted otherwise, a V.32/V.42bis modem supports V.32, MNP2-5, V.42/V.42bis. And a V.32bis/V.42bis modem supports V.32bis, MNP 2-5, V.42/V.42bis. Most modems listed here are introduced in the past eighteen months. ATI 9600etc/e ATI Technologies is well known for their video adapters. But they also make a V.32/V.42bis external modem. As of this writing, it is the least expensive external modem from an established manufacturer. It is a generic high-speed modem that works well. The street price for the ATI 9600etc/e is $379. I have been using an ATI 9600etc/e for several months now and I am very pleased with it. I will not hesitate to recommend it to anyone looking for an affordable V.32/V.42bis modem. There are two things I really like about the ATI modem: * It has a slide volume control on the outside so you can easily adjust the volume by hand. * It has factory settings for three different modes: V.32 only, V.32 with MNP-5, V.32 with V.42bis. It is very convenient if you need to initս+KjJ"ɕс͹j H ComuComHSpeeModem Champ/Star/Storm The SpeedModem Champ is a 9600 bps high-speed modem with CompuCom's proprietary CSP modulation protocol. It is introduced in early 1991. It can be ordered from CompuCom directly at a discount price of $169. The CompuCom Champ is supported by hundreds of BBS in the U.S., including heavyweights such as EXEC-PC and Channel 1. CompuCom also markets the SpeedModem Combo which is a SpeedModem Champ with fax and voice mail capabilities. The current price is $269. The SpeedModem Storm is a dual-mode modem. It supports both CSP and V.32/V.42bis. The discount price is $299 (internal) and $339 (external). The Storm is also available with fax and voice mail options for an additional $90. The SpeedModem Star is also a dual-mode modem. It supports both CSP and V.32bis/V.42bis. The discount price is $499 (internal) and $539 (external). The Star is also available with fax and voice mail options for an additional $90. Hayes Modems V-series Smartmodem 9600. Introduced in 1987, this is a high-speed modem that supports the proprietary Hayes Express 96 modulation protocol. The V-series Smartmodem 9600 is still available from various mail order vendors. There is also an internal unit called V-series Smartmodem 9600B. Smartmodem 9600. Introduced in 1988, the Smartmodem 9600 is a V.32 modem. It does not support any error control or data compression protocol. Don't confuse this unit with the V-series Smartmodem 9600. Ultra 96 is a dual-mode modem from Hayes. Introduced in 1990, the Ultra 96 supports both V.32/V.42bis and the Hayes Express 96 modulation protocol. Ultra 96 has many unique features that are not needed if you are calling BBS or online services. The current street price is $669. Introduced in Fall 1991, Ultra 144 is a dual-mode modem that supports both V.32bis/V.42bis and the Hayes Express 96 protocol. The current street price is $799. Optima 96 is a plain vanilla V.32/V.42bis modem. This is Hayes' answer to the "generic" V.32/V.42bis modem. The current street price is $479. Image Communications: Twincom 96/42 The Twincom 96/42 is an internal V.32/V.42bis modem. It lists for $299. (Don't expect to get discount on the price.) It just won a 1991 Best Buy Award from Computer Shopper. Notice that it has a 16450 UART, not a 16550. Furthermore, you cannot replace the 16450 with a 16550, the Twincom 96/42 will not support a 16550 UART at all. Intel 9600EX & 14.4EX The 9600EX is a V.32/V.42bis modem. The 14.4EX is a V.32bis/V.42bis modem. PC Connection is selling the 9600EX for $499 and the 14.4EX for $549. If you decide to buy an Intel modem, the 14.4EX is obviously a better deal. Practical Peripherals PM9600SA & PM9600 The PM9600SA is a V.32/V.42bis modem. It is designed to be compatible with the Hayes Ultra 96. That means you can tell your communications software that you have a Hayes Ultra 96. However, the PM9600SA only responds to a subset of the commands supported by the Hayes Ultra 96. Any commands specific to the Hayes Ultra 96 that are not implemented in the PM9600SA will be ignored. Some early PM9600SA units have quite a few problems connecting to other V.32 modems. (Make sure you send in the warranty card.) Practical Peripheral has since sent out several ROM upgrades and the current shipping units seem to be working fine. Practical Peripherals also makes an internal modem that features a 16550 UART. You can get the PM9600SA for $469 and the internal PM9600 for $399. Prometheus Modems Prometheus modems are available from many Macintosh mail order companies. Until recently, Prometheus is the only manufacturer that makes high-speed modems with fax capability. Promodem 9600 Plus is a V.32/V.42bis modem. It can also send and receive Group III fax at 9600 bps. Prometheus Ultima is a V.32bis/V.42bis fax modem. It can also send and receive Group III fax at 9600 bps. MacConnection sells the Ultima for $689. Telebit Modems Telebit makes several modems. The prices quoted for the Telebit modems are their new list prices. TrailBlazer Plus. $849. Introduced in 1985, the Trailblazer has been the de facto standard in the UNIX UUCP and Usenet communities. With the new pricing, you should consider the T2500 or the T3000 instead of the TrailBlazer Plus if you need to connect to a Telebit PEP modem. T1000. Introduced in 1988, the T1000 is the little brother of the TrailBlazer Plus. The T1000 supports PEP at a slower speed. The actual throughput is about 9600 cps. The current list price is $699. Unlike the TrailBlazer Plus, the T1000 does not have callback or password security. T2500. $949. Introduced in 1989 when V.32 modems started to enter the market, the T2500 supports both V.32/V.42bis and PEP. The maximum throughput is 19,200 bps due to the limitation imposed by the older Rockwell chipset used. T1600. $699. The T1600 is a V.32/V.42bis modem introduced in 1991. It provides built-in support for UUCP and offers password and callback security. T3000. $949. This is the top of the line model from Telebit. The T3000 is a V.32bis/V.42bis modem. PEP upgrade is available for $99 until 3/31/92. After that date, the upgrade will be $199. QBlazer. $745. If I am going to buy another high-speed modem today, this will be it. (I use a notebook computer). QBlaser is the first portable V.32/V.42bis modem (2.3"x2.4"x2.4"). It works with a 9-volt battery for about two hours. Note that T1600, T2500, T3000 all offer the following features: * Built-in support for UNIX UUCP, Xmodem, Ymodem, Kermit file transfer protocols * Two types of dial-access security: password security and callback security * Remote management and diagnostics U.S. Robotics Modems Courier HST. This is the modem that made U.S. Robotics the king of PC-based BBS communities. Unless you are only going to communicate with other USR HST modems, it is probably not a good idea to purchase this unit. The street price for a 14400 bps HST is $550-$600. Telemart (800-521-1973) sells either the internal or the external version for $559. Courier V.32bis. Introduced in 1990, this is a V.32bis/V.42bis modem. It does not support HST. Telemart offers the external version for $565 and the internal version for $535. Courier HST Dual Standard. This unit is introduced in 1990. If you need to connect to HST modems and also want to be able to talk to other V.32/V.32bis modems, this is the modem to buy. Its current street price is around $800. Telemart sells the HST Dual Standard for $799. (Note that earlier HST Dual Standard modems only support V.32 and not V.32bis.) The HST Dual Standard is considered by many PC users as the best modem money can buy. The only reservation I have about the Courier modems is their size. The external Courier modems are rather bulky: 8.3" wide, 12.65" deep, 1.57" tall. I would not want to carry one of these with me when I travel. (It's bigger than my notebook computer.) Sportster 9600 V.42bis. This unit is introduced in 1991. The Sportster 9600 is an entry level V.32/V.42bis modem from U.S. Robotics. The list price is $645 for the external version. ($595 for the Internal version). WorldPort 9600 V.32. The WorldPort 9600 is a portable pocket modem. Originally made by Touchbase Systems, the WorldPort 9600 is a V.32/MNP-5 modem. It does not support V.42/V.42bis. The WorldPort 9600 works with a 9-volt battery. The list price is $699. Zoom V.32 Turbo Modems Zoom has been making Hayes-compatible modems for a long time. The V.32 Turbo is their entry into the high-speed modem arena. The V.32 Turbo is a V.32/V.42bis with a 12000 bps turbo mode which is compatible with a V.32bis modem at 12000 bps. Zoom also makes an internal version of the V.32 Turbo that features a 16550 UART. PC Connection sells the internal model for $399. Things to come Every modem manufacturer makes at least one V.32/V.42bis modem now. And soon every manufacturer will also make a V.32bis/V.42bis modem. The price for V.32 and V.32bis modems will continue to drop. In fact, Supra has announced an external V.32 fax modem (SupraFaxModem V.32) for $299 and an external V.32bis fax modem (SupraFaxModem V.32bis) for $399. These prices are for the modems only. Communication and fax software will be bundled with the modem for an additional $50-$70. (These modems won't be available at least until January 1992.) Buying a High-speed Modem V.32 and V.32bis modems are clearly the standards of high-speed modems today. You should buy a V.32 or a V.32bis modem unless 1. Your application requires a high-speed modem with a proprietary modulation protocol. In this case, you should consider a dual-mode modem that support both the proprietary protocol and V.32 (or V.32bis). 2. You cannot afford a V.32 modem. In this case, your only choice for a high-speed modem is the CompuCom SpeedModem Champ. Should you pay the extra for a V.32bis modem? A V.32bis modem is faster than a V.32 modem but it also costs more. Should you pay the extra for the speed difference? That depends on two factors: what's the price difference and how do you want to reach the remote system. If the price difference is $50, I would buy the V.32bis modem. But what if the price difference is $200? Assuming the remote system support V.32bis, a V.32bis modem will pay for itself rather quickly if you are placing long distance calls to the remote system. However, it may be more cost-effective for you to use some packet-switching networks to reach the remote system by calling a local number. A V.32bis modem will be wasted since none of the packet-switching networks currently support V.32bis. In fact, they are just starting to offer 9600 bps access service. Part III of "The Joy of Telecomputing" provides a comprehensive discussion of the issues involved. Should you buy a modem with a proprietary modulation protocol? With the exception of the CompuCom SpeedModem Champ, it is generally not a good idea to purchase a modem which only supports a proprietary modulation protocol. If you have to connect to a modem that uses a proprietary modulation protocol, you should consider getting a modem that supports dual modulation protocols (USR Courier Dual Standard, Telebit 2500 or 3000, Hayes Ultra). Should you buy the SpeedModem Champ? It certainly costs much less than even the least expensive generic V.32 modem in the market today. Assuming the systems you are calling support both V.32 and the CompuCom Champ modems, should you save the money and buy the Champ? Unfortunately, there is no clear-cut answer to the question. The answer again depends on how you are going to reach the remote systems. If you want to reach the remote systems via a packet-switching network, the CompuCom Champ may not be a good choice. The CompuCom Champ is generally not supported by packet-switching networks (The only company that supports the CompuCom Champ is Connect-USA). As a result, you will only be able to connect at 2400 bps with the packet-switching networks. You would be forced to place a long distance call if you want to connect at 9600 bps. See Part III of "The Joy of Telecomputing" for the various issues involved. Should you buy a 2400 bps modem with V.42bis? If you are thinking of purchasing a 2400 bps modem with V.42bis data compression, think again. We have mentioned earlier that V.42bis and MNP-5 are useless for downloading compressed files. There is one more reason why a 2400 bps with V.42bis is generally not useful when you are calling commercial online services or BBS. Online services and BBS usually have separate phone numbers for 2400 bps and high-speed modems. Most of them do not support V.42bis on their 2400 bps lines. Therefore, you won't be able to make a connection with V.42bis if you call their 2400 bps modem lines. Couldn't you call their 9600 bps lines? Well, not really. Commercial online services, as well as many bulletin board systems, typically do not allow you to call their high-speed modem lines with a 2400 bps modem. You won't be able to make a connection even if you try. You should seriously consider the CompuCom SpeedModem Champ instead of a 2400 bps modem with V.42bis. The CompuCom Champ will probably give you much more for your money (especially if you need to pay more than $100 for the V.22bis/V.42bis modem). Beware of the Ads Current V.32 modems typically support MNP 2-5 and V.42/V.42bis. However, there are still some earlier models of V.32 modems in the market which 1. may not support any error control or data compression protocol (Hayes Smartmodem 9600). 2. may support MNP 2-5 but not V.42/V.42bis. 3. may support proprietary data compression protocol (Microcom MNP-9). 4. may support V.42 but not V.42bis (Prometheus). When a modem is said to offer a 38400 bps speed (or throughput), it may mean that 1. it is a V.32 or V.32bis modem with V.42bis 2. it is a V.32 modem with proprietary data compression protocol (some Microcom modems) 3. it is a high-speed modem with proprietary modulation protocol and V.42bis (U.S. Robotics Courier HST) 4. it is a high-speed modem with proprietary modulation protocol and proprietary data compression protocol (CompuCom Champ) An ad that says "USR modem, 38400 bps throughput, V.42bis" does not tell us anything except that the modem is made by U.S. Robotics. It could be any one of the three Courier modems. It could even be a Sportster 9600. When a modem is said to offer a 9600 bps speed (or throughput), it may mean several things: 1. it is a V.32 modem 2. it is a high-speed modem using proprietary modulation protocol (Hayes V-series Smartmodem 9600, Telebit 1000, etc). 3. it is a 2400 bps modem with V.42bis data compression. 4. it is a 2400 bps modem with 9600 bps fax 5. it is a 2400 bps modem both V.42bis and fax Setting Up Software To Work With High-speed Modems Getting a high-speed modem is only half the battle. You will need to get it to work with your communications program. Most communications programs still come with settings configured for standard 2400 bps modems. Since all 2400 bps modems are Hayes-compatible, it is relatively easy to set up the software. You simply install the software as if you had a Hayes modem. The software usually will work flawlessly. And you don't really have to worry about things like the initialization string. Getting a high-speed modem to work with your software is a different story. There is no longer a Hayes standard that everyone follows. Here are some of the reasons why you need to know how to configure your high-speed modem to work with your communications program. First, your high-speed modem may not be supported by your software. Secondly, even if your software supports your high-speed modem, the software may not be set up properly. Finally, even if your software is set up properly, the settings may not work all the times. The Proper Software Setup When we say that the software is set up properly, we mean that 1. the modem is initialized properly by the communications software, and 2. the settings of your software match those of the modem What is the proper way to initialize a high-speed modem? In general, your modem needs to be initialized to: * Enable V.42bis Data Compression * Enable hardware flow control * Handle the DTR and CD signals properly (by adding &C1&D2 to the modem initialization string) We'll use the ATI 9600etc/e modem as an example for our discussions below. The initialization string described here is for the ATI modem only. Refer to your modem manual for the equivalent initialization string for your modem. The ATI modem is supported by two popular communications programs: Qmodem and HyperAccess 5. Qmodem initializes the modem and also configures itself to use hardware flow control. HyperAccess 5 also initializes the modem properly, however it does not configure itself to use hardware flow control. All modems come with default settings pre-configured from the factory. Many V.32 high-speed modems are preset to use V.42bis and hardware flow control when they are turned on. This optimal configuration enables the modem to automatically negotiate a connection with either another V.32 modem supporting V.42bis or MNP protocols (or even a standard modem). Interestingly enough, not all high-speed modems are configured this way. The ATI 9600 etc/e modem, for example, is preset to use V.32 without error control or data compression at power-on. (Why? Good question.) As a result, your communications program needs to issue the appropriate initialization string (AT&F2) to set up the ATI modem to use V.32 with V.42bis and hardware flow control. There is another change required. And it has to do with the parameters controlling how the modem deals with two of the RS232 signals: DTR (Data Terminal Ready) and CD (Carrier Detect). CD is a signal generated by the modem which is used to indicate its connection status. DTR is a signal generated by your computer. DTR is used to enable the modem to accept commands from your communications program, it is also used by most modems to determine when to disconnect a call. The factory default setting for DTR tells the modem to ignore change in DTR (&D0), and the setting for CD forces CD always on (&C0). These specific settings are required by some dedicated dumb terminals in order to communicate with the modem. (Virtually all modems use &C0&D0 as the default setting.) However, these settings will often cause problems when hanging up the phone lines or produce an error message which says the modem is online when it is not. Most communications software programs expect the modem to follow DTR and expects CD to follow carrier. &C1&D2 set the parameters for the modem to handle the DTR and CD signals as expected by most communications programs. Therefore, the proper initialization string to use for the ATI modem should be AT&F2&C1&D2. Does Your Software Initialize the Modem Properly? Let's take a look at the initialization strings used by Qmodem and HyperAccess 5 for the ATI 9600etc/e modem. HyperAccess 5 use the following initialization string AT&F2E1V1L0Q0W2X4&C1&D2S11=55 This string is longer than the one we suggest. But does it do more? Actually it doesn't. Many of the commands in the string are redundant or not necessary. Only AT&F2&C1&D2 are crucial. Four of the commands - E1, V1, Q0 and X4 - are redundant since they are duplications of the factory default settings. (Check your modem manual to find out what they mean. Since you would most likely need to read it sooner or later, you might as well get started now.) L0 does not apply to the ATI modem. L0 normally is used to set modem speaker volume to the lowest level. However, the ATI 9600etc/e modem does not respond to the L0 command. Unlike most modems, the ATI modem has a slide volume control on the right side for adjusting the volume level. The other two commands (W2 and S11=55) are not redundant, but they are not necessary. W2 sets the modem to report Negotiation result codes in single line format instead of the default three line format (W1). Three line format: Single line format: ----------------- ------------------ CARRIER 9600 CONNECT 9600/LAP-M PROTOCOL: LAP-M CONNECT 38400 S11=55 (default is 95) sets the modem to dial at a faster speed than the factory setting. Despite the fact that its initialization string contains some redundant commands, HyperAccess 5 does properly initialize the ATI modem. Although HyperAccess 5 will initialize the modem with the string every time you dial a remote system, the program does not change the factory default settings for the ATI modem (which is V.32 without error control or data compression). Every time you turn the modem off and back on, the modem will revert to its factory defaults. Unlike HyperAccess 5 (and other communications programs), Qmodem does it in a different way. It actually replaces the old factory default setting (AT&F) of the ATI modem with a new default configuration (AT&F2&C1&D2). When you first install Qmodem to work with an ATI 9600 etc/e modem, the program sends the following two strings to the modem (make sure the modem is connected to your PC and is turned on): AT&F2^M AT&C1&D2&W^M The first string sets the modem as V.32 with V.42bis enabled, hardware flow control enabled (among other things). Note that ^M is equivalent to sending a Carriage Return to the modem. The second string changes the factory settings of the CD and DTR (&C0&D0) and then write (&W) all the new active configuration settings to the nonvolatile memory of the modem. The new settings are now stored by the modem and become the new default configuration when the modem is powered on (or when it received the ATZ command). Thus, Qmodem simply sends the initialization string "ATZ^M" (which resets the modem to its default state, now AT&F2&C1&D2) to the modem whenever you load the program. Although the two programs use different techniques, the result is the same. The modem is initialized as V.32/V.42bis with hardware flow control enabled, which is normally the optimum setting. Does Your Software Configure Itself to Match the Modem Settings? Besides sending the right initialization string to the modem, the communications software will also need to match the modem setting. Specifically, the communications software should also use hardware flow control since the modem is initialized with hardware flow control enabled. One would expect that when a software initializes the modem to use hardware flow control, the software itself would also use hardware flow control. But it is not always true. As we mentioned earlier, HyperAccess 5 initializes the modem with hardware flow control enabled, but expect you to change the flow control settings in each individual dialing entry. Why You May Need to Change the Initialization String In general, the string AT&F2&C1&D2 should work without any problem. But there is no guarantee that it will always work. When it does not work, you'll normally need to change the initialization string to solve the problems. Here are a few reasons why the initialization string used by your communications program may not work: 1. The settings need adjustments to work with the system you are calling. Case 1: When I called the Hayes BBS, the modem would abort and failed to make a connection. It turned out that the default setting (30 seconds) of the S7 register is not long enough for the ATI modem to make a connection with the Hayes Ultra 96 modem on the other end. Solution: To establish a connection to the Hayes BBS, I need to add "S7=60" to the modem initialization string and also change the setting in the communications software to wait 60 seconds for a connection. By initializing the modem with the string AT&F2&C1&D2S7=60, I was able to connect without any problem. (The default setting for the S7 register is not universal, the Hayes Ultra and Practical Peripheral use 50 seconds as the default value.) Note that there is nothing special about the number 60. In my particular case, any number larger than 45 will work. Case 2: When I call a system that uses the Telebit T1600 modems, I cannot make a connection if the ATI modem is set to use V.42bis or MNP-5. The ATI modem will only connect reliably when it is set to use MNP-4. Solution: To connect successfully, I have to set up the modem as V.32 with MNP-4 by sending the string AT&F1&U0 to the ATI modem. (AT&F1 sets the ATI modem as V.32 with MNP-5, &U0 turns off data compression.) 2. Your communication software may not be compatible with the setting. For example, America Online implemented an error-correcting scheme in the software (both the PC and the Mac versions) which is not compatible with the modem's error correction protocol. Solution: To use America Online, you need to turn off error control on the modem. AT&F configures the ATI modem as V.32 without error control. 3. Your computer hardware may not work with the setting. As I mention earlier, you need a properly wired cable for the Mac to use hardware flow control. If you do not have the right cable or if your Mac simply won't work with the cable, you will need to use software flow control. (&K4 tells the ATI modem to use software flow control.) Solution: To use the ATI modem in V.32/V.42bis mode with my Mac, I need to disable hardware flow control and use XON/XOFF software flow control instead. The string AT&F2&K4&C1&D2S7=60 sets up the modem properly (again, S7=60 is for calling the Hayes BBS). 4. You may need to change the setting to achieve better performance. It is advisable that you turn off MNP-5 while downloading pre-compressed files from a remote system that has a MNP-5 modem. You can initialize the ATI modem to turn off MNP-5 data compression with the string AT&F1&U0. Again, the initialization string used here is for the ATI modem only. If you use a different modem, you would need to check with the modem manual to find out the equivalent commands to use. Editing the Initialization String If the initialization string provided by your software does not work (or if your software does not support your modem at all), you'll need to edit the initialization string in your communications program. The modem initialization string consists of a series of commands (called the AT commands). They can be divided into three groups: 1. A capital character followed by a digit. For example, M1. 2. An ampersand & and a capital character followed by a digit. For example, &M1. Note that M1 is different from &M1. 3. Sr=n where "r" is the number of the register to be changed and "n" is the new value that is being assigned. For example, S7=60. There are some other characters that may also appear in the modem initialization string. These characters normally should not be changed. AT tells the modem that modem commands follow. Z resets the modem to default state ~ makes your software pause for half a second. You can use more than one ~ in a row. For example, ~~~~ tells the software to pause two seconds. ^M sends the terminating Carriage Return character to the modem. This is a control code that most communication software translate as a "carriage return." Let's assume that the appropriate initialization string to use is AT&F2&C1&D2S7=60 (for the ATI modem). You'll need to replace this string with the one provided by your communications software. If your software does not support your modem, you can install the program by telling it that you have a Hayes modem. After the installation, you'll simply edit the initialization string with the appropriate one. Please make sure you do not delete any ~ or ^M. Here are some examples, 1. To change the string provided by Procomm Plus ATE1 S7=60 S11=60 V1 X1 Q0 S0=0^M Use the string AT&F2&C1&D2S7=60^M 2. To edit the string used by Telix ATZ^M~~~AT S7=45 S0=0 V1 X4^M change it to ATZ^M~~~AT&F2&C1&D2S7=60^M 3. To replace the initialization string provided by ZTerm (Macintosh) ATE1M1 V1^M use the following string AT&F2&C1&D2S7=60^M Match Software Settings To the Modem Settings Besides using the right initialization string, you also need to make sure that the settings in your communications program match those of the modem. Speed setting If you have a modem that supports data compression. You want to make sure that the speed setting for the entries in your dialing directory is the maximum throughput. Here are the general rules of thumb: For a V.32bis/V.42bis modem, set speed to 38400 or 57600 bps (check your modem manual). For a V.32/V.42bis modem, set speed to 38400 bps. For a V.32/MNP-5 modem, set speed to 19200 bps. For a V.22bis/V.42bis modem, set speed to 9600 bps. For a V.22bis/MNP-5 modem, set speed to 4800 bps. Note: Your computer may not be fast enough to work reliably at 38400 or 57600 bps. Also, the communications programs you use may not support speed higher than 19200 bps. Hardware flow control Note that you will need to configure your software to use hardware handshaking if the modem is initialized to use hardware flow control. Dialing Time-out Value Independent from your modem setting, your software may also impose a limit on how long it will wait for a connection. If you initialize the modem with the command S7=60, you'll need to change the time-out value used by your software to 60 seconds accordingly. Configuring Popular Communications Software to Work with High-speed Modems Below are brief instructions for configuring some popular communications programs to work with a high-speed modem. The particular initialization string is for the ATI 9600etc/e modem. It is assumed that the appropriate initialization string to use is AT&F2&C1&D2S7=60. Make sure you save the changes you make. Procomm Plus 2.0 To change the modem initialization string: (Global, i.e. it works with every dialing entry) 1. Load Procomm, press Alt-S 2. Select Modem Options 3. Select Modem Commands 4. Press A 5. Change the initialization string to AT&F2&C1&D2S7=60^M To set the software to wait 60 seconds for connection: (Global) 1. Load Procomm, press Alt-S 2. Select Modem Options 3. Select General Options 4. Press A 5. Type 60 and press Return To enable hardware flow control: (Global) 1. Load Procomm, press Alt-S 2. Select Terminal Options 3. Press D (hardware flow control) 4. Press Space Bar to toggle, press Return to accept 5. Press C (software flow control) 6. Press Space Bar to toggle, press Return to accept Telix To change the modem initialization string: (Global) 1. Press Alt-O 2. Select Modem and dialing 3. Select A (Init String) 4. Change the initialization string to ATZ^M~~~AT&F2&C1&D2S7=60^M To set the software to wait 60 seconds for connection: (Global) 1. Press Alt-O 2. Select Modem and dialing 3. Select K (Dial time) and enter 60 press Return To enable hardware flow control (Global) 1. Press Alt-O 2. Select Terminal options 3. Press J (XON/XOFF software flow control) 4. Select Off 5. Select K (CTS/RTS hardware flow control) 6. Select On 7. Press ESC to exit Qmodem To change the modem initialization string: (Global) 1. Press Alt-N 2. Press M to select Modem menu 3. Select Modem Commands 4. Press Return 5. Change the initialization string to AT&F2&C1&D2S7=60^M To set the software to wait 60 seconds for connection: (Global) 1. Press Alt-N 2. Press M to select Modem menu and Press Return to select Communication Parameters 3. Press H to select Timeout delay 4. Type 60 and press Return 5. ESC to exit To enable hardware flow control: (Global) 1. Press Alt-N 2. Select Toggles 3. Press Return to toggle XON/XOFF flow 4. Select CTS/RTS flow 5. Press Return to toggle 6. ESC 7. ESC 8. Press E for Exit 9. Save Changes HyperAccess 5 Note: HyperAccess 5 supports the ATI 9600etc/e. However, HyperAccess 5 does not let you edit the initialization string directly. You can add additional setup commands to change the modem settings for each individual dialing entry. To change the modem initialization string: (Individual, i.e. it works only with the particular dialing entry) 1. Select Define system settings from the Main menu 2. Select Modify 3. Use cursor to select the system to modify and press Enter 4. Select Hardware from the System settings menu 5. Select Modem 6. Select Additional modem setup commands 7. Type S7=60 8. Press ESC twice to go back the Main menu To set the software to wait 60 seconds for connection: N/A To enable hardware flow control: (Individual) 1. Select Define system settings from the Main menu 2. Select Modify 3. Use cursor to select the system to modify and press Enter 4. Select Hardware from the System settings menu 5. Make sure that Data terminal ready signal is output on DTR, delete RTS if it is listed 6. Select Communications port 7. Select Incoming hardware handshaking and type CTS 8. Select Outgoing hardware handshaking and type RTS Crosstalk for Windows To change the modem initialization string: (Global) 1. Pull down Setup menu and select Modem... 2. Select Custom and click on Settings 3. Change the initialization string to ^M~AT&F2&C1&D2S7=60^M 4. Click OK To set the software to wait 60 seconds for connection: (Individual) 1. Pull down File menu and select Open a phone book entry 2. Open the phone book entry 3. Pull down Setup menu and select Session 4. Click on More 5. Change the value in Allow xx seconds for the host to answer To enable hardware flow control: (Individual) 1. Pull down File menu and select Open a phone book entry 2. Open the phone book entry 3. Pull down Setup menu and select Device 4. Click on RTS/CTS and click OK MicroPhone II (for Macintosh) To change the modem initialization string: (Individual) 1. Choose Settings Menu 2. Select Communications 3. Choose V.32 Standard from the Modem Driver list box 4. Click OK 5. Hold down the Command key and choose Scripts menu 6. Select Modify Script 7. Click the Modem Scripts button 8. Double-click on Modem_Init 9. Double-click on the first line that says Set Variable * mcmd from Expression "'AT....'" 10. Change the initialization string in the lower right box to 'AT&F2&C1&D2S7=60^M' 11. Double-click on the second line that says Set Variable * mcmd from Expression "'AT....'" 12. Change the initialization string in the lower right box to 'AT&F2&C1&D2S7=60^M' 13. Click OK 14. Press the Option key and choose the File menu 15. Select Save Modem Driver (If you want to save the driver under a new name, select Save Modem Driver As... in the File Menu. Name the new driver, and save it into the Modem Folder.) To set the software to wait 60 seconds for connection: N/A To enable hardware flow control: (Individual) 1. Pull down Settings Menu 2. Select Communications 3. Click on the Hardware Handshake box ZTerm (for Macintosh) To change the modem initialization string: (Global) 1. Choose Settings Menu and select Modem 2. Change Init String to AT&F2&C1&D2S7=60^M To set the software to wait 60 seconds for connection: (Individual) 1. Choose Settings Menu and select Modem 2. Edit Dial Timeout To enable hardware flow control: (Global) 1. Choose Settings Menu and Select Flow Control 2. Uncheck Xon-Xoff Receive 3. Uncheck Xon-Xoff Send 4. Check HW Handshake Other Settings for Your Communications Software Telephone Number Online services use different phone numbers for different kinds of modems. To get the best throughput, make sure you dial the right phone number. Note that many bulletin board systems do not allow calling their high-speed modem lines with 2400 bps modems. You would be disconnected. For example: EXEC-PC, the largest BBS in the United States, has the following telephone numbers: #1: Standard 2400 bps modems 414-789-4210 #2: US Robotics HST 9600 MNP5 414-789-4337 #3: US Robotics HST 14400 & V.32/V.42bis/MNP5 414-789-4352 #4: US Robotics V.32bis/V.42bis & HST 414-789-4360 #5: CompuCom Speedmodem 9600 MNP5 modems 414-789-4450 #6: Hayes 9600B V-series modems, NON-V.32 414-789-4315 If you have a 9600 bps HST modem, call #2. If you have a 14400 bps HST modem, call #3 or #4. You can also call #2 but you won't be able to get the best throughput. If you have a V.32 modem, call #3 or #4. If you have a V.32bis modem, call #4. You can also call #3 but you won't get the best throughput. If you have a CompuCom SpeedModem Champ, call #5 If you have a CompuCom SpeedModem Storm, call #3 or #4 (V.32), #5 (CSP) If you have a CompuCom SpeedModem Star, call #4 (V.32bis), you can also call #3 or #5 but you can only connect at 9600 bps. If you have a Hayes V-series Smartmodem 9600 (or 9600B) modem, call #6. Dial String: ATDT You don't have change the dialing string unless you use a PBX system or have call waiting service. PBX If you have to dial the digit 9 to obtain an outside line, Use ATDT9, (the comma , instructs the modem to pause two seconds). This allows enough time for the dial tone to occur before the modem dials. You can use as many commas as you like. Call Waiting Call waiting service will disrupt modem sessions. If your telephone company supports the ability to disable call waiting, use the dial string ATDT*70, (make sure you add the comma ,) instead of ATDT. ATDT*70,123-4567 Also, adding 1170 after the ATDP dial command can be used to disable call-waiting on some pulse-dialing phone systems. Check with your phone company to see if these features are supported. 8-N-1 or 7-E-1 (data bits-parity-stop bits) In general, set the parameters to 8-N-1. If you are calling a commercial online service (such as GEnie), you may need to set the parameters to 7-E-1. Half vs. Full Duplex: Local Echo The only popular on-line service that uses half duplex is GEnie. Terminal Emulation If you are using an IBM compatible, choose IBM PC or ANSI. Otherwise, try VT102, VT100, VT52, TTY. Comm Port For your computer to talk to your modem, you need to tell the software where to find the modem. If you use a PC with an external modem, you need to specify which serial port the modem is connected to. If you have an internal modem, you need to configure the modem and tell the software which COM port the modem is configured for. If you use a Macintosh, specify whether your modem is connected to the modem port or the printer port. File Transfer Protocols Errors that occur during file transfer are automatically detected and corrected by file transfer protocols. If a block of data is received incorrectly, the receiving system sends a message to the sending system and requests the re-transmission. This process is automatic. When errors occur during file transfer, the communication program shows an error in the file transfer status window. ASCII This is designed to work with ASCII text files only. Notice that you do not have to use this protocol when transferring text files. The ASCII protocol is useful for uploading a text file when you are composing e-mail online. Xmodem Xmodem is one of the most widely used file transfer protocols. The original Xmodem protocol uses 128-byte packets and a simple "checksum" method of error detection. A later enhancement, Xmodem-CRC, uses a more secure Cyclic Redundancy Check (CRC) method for error detection. Xmodem protocol always attempts to use CRC first. If the sender does not acknowledge the requests for CRC, the receiver shifts to the checksum mode and continues its request for transmission. Xmodem-1K Xmodem 1K is essentially Xmodem CRC with 1K (1024 byte) packets. On some systems and bulletin boards it may also be referred to as Ymodem. Some communication software programs, most notably Procomm Plus 1.x, also list Xmodem-1K as Ymodem. Procomm Plus 2.0 no longer refers to Xmodem-1K as Ymodem. Ymodem Ymodem is essentially Xmodem 1K that allows multiple batch file transfer. On some systems it is listed as Ymodem Batch. Ymodem-g Ymodem-g is a variant of Ymodem. It is designed to be used with modems that support error control. This protocol does not provide software error correction or recovery, but expects the modem to provide the service. It is a streaming protocol that sends and receives 1K packets in a continuous stream until instructed to stop. It does not wait for positive acknowledgement after each block is sent, but rather sends blocks in rapid succession. If any block is unsuccessfully transferred, the entire transfer is canceled. Zmodem This is generally the best protocol to use if the electronic service you are calling supports it. Zmodem has two significant features: it is extremely efficient and it provides crash recovery. Like Ymodem-g, Zmodem does not wait for positive acknowledgement after each block is sent, but rather sends blocks in rapid succession. If a Zmodem transfer is canceled or interrupted for any reason, the transfer can be resurrected later and the previously transferred information need not be resent. Kermit Kermit was developed at Columbia University. It was designed to facilitate the exchange of data among very different types of computers (mainly minicomputers and mainframes). You probably will not need to use Kermit unless you are calling a minicomputer or mainframe at an educational institution. Sealink Sealink is a variant of Xmodem. It was developed to overcome the transmission delays caused by satellite relays or packet-switching networks. Which file transfer protocol should you use? In general, I recommend Zmodem. If Zmodem is not supported by the system you are calling, use Ymodem-g. (If you are connecting to a UNIX system in a university, you may have to use Kermit or Xmodem to transfer files.) Here are the test results obtained by downloading the files using various file transfer protocols. The number before the parentheses is the transfer speed (in cps) and the number in the parentheses is the time elapsed (in seconds). Protocol Xmodem Xmodem-1K Ymodem Ymodem-g Zmodem --------------------------------------------------------------------- the-wave.txt 429(334) 1508(95) 1527(94) 3261(44) 3296(43) dayrpt.arc 314(26) 758(11) 761(11) 1042(8) 1025(8) dayrpt.wks 415(47) 1252(15) 1244(15) 2314(8) 2337(8) sunset.arc 337(15) 771(6) 745(6) 987(5) 965(5) sunset.pic 399(41) 1337(12) 1297(12) 2594(6) 2588(6) text109k.arc 343(86) 817(36) 814(36) 1089(27) 1064(27) text109k.txt 410(271) 1379(80) 1351(82) 2812(39) 2885(38) ************************************************************************ Appendix A: Resources Here is a list of selected modem manufacturers. Manufacturer Information Tech Support Support BBS -------------------------------------------------------------------------- ATI Technologies (416) 756-0718 (416) 756-0711 (416) 756-4591 Cardinal (800) 233-0187 (717) 293-3124 (717) 293-3074 Compucom (800) 228-6648 (408) 732-4500 (408) 738-4990 Hayes (404) 441-1617 (404) 441-1617 (800) 874-2937 Image Communications (201) 935-8880 (201) 935-8880 n/a Intel (800) 538-3373 (503) 629-7000 (503) 645-6275 Microcom (800) 822-8224 (617) 551-1313 (617) 551-1655 Multi-Tech (800) 328-9717 (800) 328-9717 (612) 785-9875 Practical Peripherals (800) 442-4774 (818) 991-8200 (818) 706-2467 Prometheus (800) 477-3473 (503) 624-0571 (503) 691-5199 Supra (800) 727-8772 (503) 967-2440 (503) 967-2444 Telebit (800) 835-3248 (800) 835-3248 n/a U.S. Robotics (800) 342-5877 (800) 982-5151 (708) 982-5092 Zoom (800) 666-6191 (617) 423-1076 (617) 451-5284 Support BBS for Communications Programs -------------------------------------------------------------------------- Procomm Plus (Datastorm Technologies, Inc.) (314) 875-0523 Telix (Exis Inc.) (416) 439-9399 Qmodem (The Forbin Project, Inc.) (319) 233-6157 HyperAccess 5 (Hilgraeve Inc.) (313) 243-5915 Crosstalk for Windows (DCA) (404) 740-8428 MicroPhone II (Software Ventures) (415) 849-1912 ZTerm n/a ************************************************************************ Appendix B: How to reach the author If you have any comments or suggestions, I'll love to hear from you. You can reach me via America Online: Pat Chen CompuServe: 70754,3162 DELPHI: POC FidoNet: 1:161/444.38 GEnie: p.chen2 MCI Mail: 445-6669 Internet: 445-6669@mcimail.com 70754.3162@compuserve.com pchen@cup.portal.com U.S. Mail: Patrick Chen P.O. Box 5325 Irvine, CA 92716 ************************************************************************ Appendix C: About "The Joy of Telecomputing" What is "The Joy of Telecomputing?" "The Joy of Telecomputing" is a 200-page (and growing), three-part report consisting of the following articles: "What you need to know about modems,""Life beyond CompuServe" and "Is AT&T the right choice?" A glossary and an index are also provided. The discussions in "The Joy of Telecomputing" are devoted to the following online activities: file transfer (downloading shareware, exchanging files with colleagues or friends), electronic mail, conferences (forums, newsgroups, SIGs), chatting. You won't find discussions on stock quotes, shopping malls, online databases, etc. Going online has become a way of life for many computer users. It is undeniably fascinating, fulfilling and fun. But there is also a down side to it: the cost can be prohibitive. I have yet to meet an avid modem user who didn't wish that he could afford to be online longer. To get the most mileage from your online dollars, you need to know the answers to the following three questions: 1. What is the right modem to use? 2. What online services are available and how do they compare? 3. What is the most cost-effective way to reach those services? These are not isolated questions. The answers to these questions will help you decide what online systems are right for you. People live in different cities, use different kinds of computers and do different things online. It should come as no surprise that there isn't a single online system that is right for everyone. The goal of "The Joy of Telecomputing" is to help you get the most from telecomputing. Our goal is not to tell you that so-and-so is the best but to present you with enough information so that you will be able to determine what is right for you. We'll provide you a survey that is both comprehensive and specific. To be comprehensive, we'll cover the three main groups of online systems: commercial online services (CompuServe and others), bulletin board systems and the Internet. To be specific, we'll present you all the necessary information to help you make a decision. Take electronic mail, for example. Virtually all online systems offer electronic mail service. However, listing dozens of services and saying that they all offer e-mail would do little to help you make an intelligent decision. We'll also provide specific details about each service such as * How much does it cost? * How fast does a message get delivered? * Is the e-mail message protected? (Can someone else besides the recipient read your mail messages?) * Can you send e-mail to people that are not subscribers of the service? * Can you send a file with your message? * Is there a limit on the size of the file you can send with your message? * How can you reach the service? * Can you read and reply messages offline? I use MCI Mail, CompuServe and the Internet for e-mail on a daily basis. Do I need all these accounts? Not really. Theoretically I only need one of them. (Yes, you can send e-mail from MCI Mail to a CompuServe or an Internet user, and vice versa.) Why do I have three accounts then? Because each has its pros and cons. And I use e-mail so much so that the three accounts combined offer me the best solution. (Note: CompuServe is a good deal for e-mail only if you join the Basic Service Plan. To join this experimental program, type GO NEWBASIC at any ! prompt. For $7.95 per month, you are allowed to send 60 messages. Each message can have up to 7500 characters. Note that there is a surcharge for sending e-mail to MCI Mail users. Also, reading e-mail sent to you from Internet also count against your monthly allowance.) For the past eight years, I've worked as a computer consultant. I decided to pursue my career as a computer writer a few months ago. In the past three months, I have signed contracts for two computer books to be published in 1992. "The Joy of Telecomputing" is a project that I believe is sorely needed. Initially I have considered submitting it to the computer book publishers. However, I have learned that it can easily take six to nine months (if no longer) to get a book published. As a result, by the time the book gets to the readers, it is probably obsolete. (It may not be too bad if this is a book on C programming. But a book on the online world?) Therefore, I decide to try it on my own to see whether the online community would support such a project. The online world is constantly changing and it will remain one of the hottest growing area in microcomputing for many years to come. By keeping the project under my own control, I'll be able to provide you the information you need on a timely basis. "The Joy of Telecomputing" is an ongoing project. It will be updated every quarter. Future updates of "What you need to know about modems" will remain available on BBS and other online services. If there are enough supporters for this project, I would like to set up a BBS. (What else?) You will be able to exchange informations, download files and participate in discussions about the ever evolving online world. What's in "Life Beyond CompuServe?" Part II of "The Joy of Telecomputing" provides a comprehensive survey of the online world. It covers the three major groups of online systems: * Commercial online services (America Online, BIX, CompuServe, DELPHI, GEnie, MCI Mail, Prodigy, etc). * BBS (including discussions on FidoNet, RIME, etc) * The Internet (including discussions on UUCP, Usenet, Bitnet, etc). Commercial Online Services In general, commercial online services do not offer good price/performance, though some of them excel in certain areas (such as e-mail). We'll look at the major commercial online services (CompuServe, GEnie, Prodigy, etc.) and see what they offer and what they are good for. Major topics covered are: * What are the major commercial online services? * How much do they cost? * How can you access those services? * What do they offer? How do they compare with each other? * How do they compare with BBS? The World of BBS It is estimated that more than 30,000 bulletin boards exist in the United States. If you live in a metropolitan area, you'll probably find hundreds of BBS that are local. Most BBS operate as a hobby by their owners and without charge to their users. There are many BBS that have members all over the United States (and the world). The world of BBS has become a phenomenon. BBS are no longer isolated systems. Fidonet, the network linking thousands of BBS around the world, allows users on one BBS to communicate with those on other BBS. Recently, with gateways to the UUCP network, many BBS has allowed their members to exchange e-mail with users of the Internet and to participate in Usenet newsgroups. We'll cover the following topics: * How many BBS are there? How do they compare? * How much does it cost to become a member? * What are the limitations? * How to find BBS numbers? * Which BBS offers the latest and greatest files for PC users? Macintosh users? Amiga users? * Which BBS are good for chatting? Which are good for conferences? * What is Fidonet? How does it work? What does it offer? * How to join Fidonet as a node? * How to become a point on Fidonet? * How to send e-mail from Fidonet to Internet (and from Internet to Fidonet)? * What is RIME? * What are the major BBS software available? * How to use BBS effectively? * What software tools you need and where to find them? * BBS Etiquette * Why ZTerm is the best program to use for calling BBS? (For Macintosh users only) * What are MacBinary files? How to download a Macintosh file to a PC? How to download a PC file to a Macintosh? (For Mac users or people who use both Mac and PC.) Internet If you want someone to learn UNIX, show him the Internet. (You don't need to be a UNIX expert to use the Internet though. Besides, UNIX is not really that hard.) Internet is a global computer network linking hundreds of thousands of Kѕ́Bj偪9%aAmutes)@at universities, research institutions and government agencies. Internet is unsurpassed for e-mail and conferences (called newsgroups in the UNIX world). It is also an invaluable resource for free software. Some major topics covered are: * What is Internet * What is UUCP? What is Usenet? What is Bitnet? * What can you do on the Internet? * How to send e-mail on the Internet? * How to send e-mail from Internet to CompuServe, MCI Mail, Fidonet (and vice versa)? * How to send binary files? * What newsgroups are available? * How to participate in a newsgroup? * Etiquette * What is FTP? * What is Anonymous FTP? * How to use FTP? * What are the FTP sites available? * How to find the files you need? * What is telnet? * What can you do with telnet? (Read "The Cuckoo's Egg" by Cliff Stoll for a first-hand account on how a German hacker use telnet to break into computers on Internet.) * How to use telnet? * How can you get an Internet account? * What services are available? What kind of access level do they offer? * How much do they cost? * How to transfer files from a UNIX host to your personal computer? * What are uuencode and uudecode? * What are compress, tar and shar? What's in "Is AT&T The Right Choice?" Part III of "The Joy of Telecomputing" provides detailed discussions on the various ways you can reach a remote system (i.e., a system which is not local to you). What is the most cost-effective way to reach those systems? There are generally two options you have to reach a remote system: 1. You can place a distance call using AT&T, MCI, etc. 2. You can reach the system via some packet-switching networks by dialing a local number (the system you are calling may already have a deal with a packet-switching network and charge you accordingly, or you may subscribe to one of the packet-switching networks yourself). However, packet-switching networks differ widely in what they offer, how much they charge, and how well they perform. We'll look at some of the services available (PC Pursuit, Connect-USA, Accu*Link, Tymnet, REDI-Access, etc.). * How many ways can you reach a remote system? What are the pros and cons? * What are packet-switching networks? * How do they work? * What services are available? * What do they offer? * What kinds of modems do they support? * What are the differences in performance among different packet-switching network? * How much do they cost? * Are packet-switching networks cost-effective?