AOH :: MPRIMER4.TXT
Modem Primer 4 of 4
|
Crazy Slots Download
Digital Communications
by Hank Volpe
Note: This material is copyrighted 1990 by Hank Volpe. Reprints of this
article have appeared in more than 50 newsletters around the country.
For more information or comments, please write to;
Hank Volpe
P.O. Box 43214
Baltimore MD 21236
A Modem Primer - Part 4 of 4
Hopefully you've been part of the last 3 articles here dealing with modems,
cables, UARTS and computers. If not, take a look through the back issues of
your newsletter and find these articles. In summary, we've spent time looking
at some of the technical, physical, and programming facets of using a modem
with your computer. We have been following a "college" analogy all along and
will conclude with our senior level talks about modems this month. You should
realize too that like college, all the information presented here is
incomplete. This is a starting place. Before we start I'd like to answer a
few questions about how I learned about modems.
About 7 years ago I brought a modem home from work. The unit was what we
call these days a "dumb" modem. It had lots of switches on the front with
labels like SAL, DL, HS, MR and of course no idea of what these things meant.
Also, the reason I brought the modem home was because it did not work. It was
busted and was being thrown out. Being an engineer by trade, I spent a few
hours fixing the modem. Again, you must remember that 7 years ago, even a
dumb modem that worked at 1200 bps was at least a $500 item. I managed to get
it working in a self-test mode that I had stumbled on by accident, however I
had no idea now what to do with it. A friend of mine explained to me that I
needed a program to make my PC work with the modem, and he gave me a copy of
something called PC-TALK. PC-TALK was one of the first shareware programs
distributed via modem on BBS's. I had no idea at all about BBS's's, modems,
or shareware. I also figured out that PC-TALK was not designed to work with
my modem. It was meant to work with something called a Hayes. Well, after
some playing around, I figured out how to make the calls myself, press a
button to place the modem on-line, and get connected to a BBS. The first
questions I got were about Xmodem. What the heck was an Xmodem? How did I
change from 300 to 1200 bps? It was a very exciting time, because I was
totally confused yet fascinated by this modem and how it could extend my
computer to other machines. Back in 1974, I had built my first computer by
making my own microprocessor and memory boards, building a disk drive kit and
a terminal kit, and placing it all together in a S-100 motherboard kit. It
was wonderfully incompatible with the universe, and as such, was very
frustrating to work with. Now I had this compatible PC, and I could tap into
other computers over the phone. However, my knowledge of the subject was
extremely limited. I may have been a good engineer, but I knew nothing about
computers from a system integration side. The modem turned out to be a
catalyst for me with computers.
Sources of information about modems and computers are not hard to come by,
but you do have to do some digging. Most of my information came from
Technical reference manuals on the computer, modem, and UARTS. These books
are very technical in nature (I guess that's why they are technical reference
manuals) and as such assume you know a great deal about the subject you are
trying to find information about (its like a dictionary..you have to know how
to spell a word in order to look it up to find the right spelling!). Now
days, there are plenty of well written information books on the subject. If
you are interested, go to your main branch library and browse through the
computer section. I think you will be amazed at the volume and scope of on-
hand information your library has on computers and modems. The final thing
you need to learn how a modem works is the desire to experiment. Try setting
things up a certain way, and see the results. If it doesn't work, try a
different way. You have to maintain that "beginner's" mind we talked about in
the first article on modems or you cannot learn anything of value. That's a
brief summary of how I learned about modems and how much time I've spent with
them. Most of you reading this probably know more about modems now than I did
when I brought the broken one home to repair. Just remember that persistence
does pay off!
Modem 401 - A handshake is better than a kiss
You and a friend meet. What do you usually do? If you are like most people,
you make some physical contact, usually a handshake, to exchange greetings.
With your employer, you might shake hands on an agreement. In our society, a
handshake can mean many things, but at its basic level, it is a physical
"touching" of another person. Computer devices need to handshake too.
Handshaking is part of a protocol, just like it is in human society. There
are different kinds of handshakes for different occasions. Meeting a business
client invokes one kind of handshake, a close friend you haven't seen for a
long time invokes another kind of handshake, and meeting a lover invokes a
third type. Computers also have levels of handshakes depending on the level
of intimacy expected or desired between devices. The reason for these
handshakes is to put the two devices (or people) at ease with each other and
set the basis for a mutually satisfactory exchange of information. A
communications "business" contact usually involves the least amount of
handshaking, while "making love" (transferring a file in an error-free
manner) involves the most intimate intertwining between systems. A computer
meeting a modem via a Uart at a basic level needs a bare minimum of wiring.
You need a wire to transmit data (the TX line), a wire to receive data (the
RX line) and that is about it. So why are there so many other connections
available on your 25 pin external connector? These other wires are used to
implement different levels of hardware-level handshaking. The level you use
directly limits the speed and method of moving data between machines that you
can use.
The most basic handshake (the business client) uses two signals. Each device
places a signal on a line that can be read by the other. The computer in data
communications is thought of as a "Data Terminal", while the modem is
considered a "Data Set". When you enable a serial port via your
communications program or by using Dos's Mode.com, a signal called the "Data
Terminal Ready" or DTR is activated by the Uart under direction of the
computer you are using. At the other end of the cable (or on the other side
of the Uart in internal modems), the modem senses ("feels?") this signal, and
raises its hand in friendship by activating its "Data Set Ready" signal or
DSR. The computer extends its hand, and the modem extends its hand, and the
two now know that each other has shown up for their meeting. Most business
meetings usually have a "social-time" before the actual negotiation starts.
During this time, information is exchanged, but usually the information is
more or less setting up the ground rules or just getting to know each other.
However, when the formal part of the meeting starts, each side makes their
presentations along those agreed guidelines. Between computer and modem, the
preliminary work is done before the modem connects to a BBS or a data
service. The modem makes its connection, and signals the computer that its
time to get to work by raising another signal line called the "Carrier
Detect" or CD line. Hayes-compatible modems also can return an English
message to the communications program saying "CONNECT", however it is up to
your program to read that message. Just to be safe, and to prevent
"misunderstanding", the CD line is raised.
Body language plays a big part in effective human communications. You walk
into your boss's office and want to ask for a raise. He greets you with a
hurried look on his face, grumbles about how high heating bills are these
days and puts his arm around you and walks you to the door. Unless you are
really an odd person, you would have figured out that his arm around you does
not mean he is happy to see you, but rather that he is too busy to talk right
now and that you can come back some other time. Well modems and computers
have this same type of handshaking too. Each system can tell the other it is
ready to send information by raising the RTS (Ready to Send) line. If the
corresponding receiver raises its CTS line (Clear to Send), the data is
transferred. If not, the computer or modem can wait until it sees a CTS
signal, or it can forget about the whole thing.
Modem 402 - Platonic Connections
There are other ways of handling handshaking between a modem and a computer.
The methods we talked about above were all based on physical connections
between the computer and the modem, or in other words, hardware handshakes.
There are software handshakes that can be used too. Software handshakes are
pre-defined characters that appear in a data stream. These handshakes can be
used to relay many different types of instructions between computers or
between modems. One of the most popular forms of software handshaking is the
Xon/Xoff system. Xoff (or Control-S) is nothing more than an ASCII character.
If a modem or a computer recognizes an Xoff command, then it stops
transmitting data until it sees an Xon command (or Control-Q). Xon/Xoff can
work between modem and computer, between computer and computer, between modem
and modem, or even inside of a disk operating system. If you want to see a
software handshake, tell Dos to type a document to your screen, and then
press the Pause key on your computer (or Control-S). The screen pauses until
you press another key to restart it. Control-C is another software handshake
that tells a program to abort and return to Dos. There are many different
software handshakes that can be used, but each one has a clear purpose; to
control the flow of data between devices.
Software handshaking can also do more than control the flow, it can also be
used to detect and correct errors that occasionally happen between devices.
When you call a BBS with your modem you are simply connecting one modem to
another. Occasionally you will see funny characters on the screen, mostly due
to a poor connection or to weather conditions. These funny characters are
caused by the fact that the numerical code for a character got "damaged" and
altered by transmission. Changing an A to an E is nothing more than changing
the number 40 hex to 45 hex. In a text transmission, this is more of a
nuisance than anything else, however if you were downloading a program, this
could introduce a serious flaw in the program you are receiving! To make
matters worse, how would you know you have received that error? After all,
you are getting a file of commands, not text. The only way to do so is to let
the computers detect an error between them and correct it without you getting
involved. Such a software handshake method places data into packets of
information. The size of this packet can vary with the method, however the
purpose is the same. Each packet contains a packet number (or block number),
the data to send, and a check value at the end. A computer transmits this
over the modem. The receiving computer calculates a check value and compares
it to the value sent to it. If they agree, it moves on to get the next block.
If not, it asks for the same block to be transmitted again. There are many
different methods of packeting data. PC-based communications programs call
this a file-transfer protocol. Whether you use Xmodem, Ymodem, Zmodem, Kermit
or one of a dozen more protocols, you are using a software
handshake/correction system to control the flow of data and to correct
errors. The software method can also be placed inside of a modem instead of
inside of a communications program. These types of modems are called "error-
correcting" modems and they use a system of sending data between them. One of
the most popular methods is based on a network-packeting system developed by
Microcom. Modems that use this method are called MNP (Microcom Network
Protocol) modems. Another method is called V.42 bis. The latter is from the
CCITT (an international group that makes recommendations for manufacturers to
follow). The important thing here to realize is that software handshaking can
be implemented in many ways, like hardware handshaking. A "business" contact
uses the fewest controls. In order to operate most modems with your PC, you
need only to use a TX wire, an RX wire, a DTR wire and a DSR wire.
Communications that require more "contact" (like 9600 bps communications
while multi-tasking) require that each device know when the other is ready to
send and ready to receive. For those, you have to add the RTS and CTS signals
to your cable. Finally, if a system is to "make love", it needs the most
intimate details (and also to know if it is performing up to desired
expectations). At this point you need to have real communications between
systems. It can be Xon/Xoff, MNP, V.42 or a file transfer protocol, but
whatever the method, the purpose is to link two systems together as closely
and intimately as they can.
If you have an internal modem, pay close attention to how you have the
handshaking set. By default, most modems do not properly use the DTR/DSR
handshaking. If your software requires this type of communication, it might
not run properly. If you have an external modem, you should make sure you
have the right data cable for the job. A data cable can work with as few as 2
wires, but it will not have all of the handshaking signals in it. You might
find out that the modem works with some programs but not with others. Usually
when you buy a data cable, it lasts for the life of the system, so don't go
cheap. Purchase one that has all the proper handshaking signals (DTR/DSR,
RTS/CTS, CD, RING, TX, RX). Finally, if you have a high-speed modem, check
that you are using the proper handshaking between computer and modem. Most
communications programs use RTS/CTS signalling for high-speed modems. This
handshaking is important, because when the computer is storing data to your
disks, it cannot properly get data from your modem. The modem must be told to
stop transmitting during this time. The communications program will drop its
RTS signal to the modem, and the modem will hold data in its internal buffer
until the communications program signals it to start again. This type of
handshaking is usually important at speeds over 2400 bps.
Modem 403 - Why doesn't my modem work ?
Modem's are fairly easy devices to attach to a computer, and this appears to
be the biggest reason why things can sometimes go wrong. Compared to fixed-
disks, or memory expansion, a Modem requires nearly no changes to your PC. If
you are using an external modem, all you need is a cable and a serial port.
Internal's plug right into a free expansion slot. No muss, no fuss..no work?
Oh boy, now what is wrong? The best place to solve this problem is to use the
tools siting right in front of you; the computer and the modem.
External Modems have LED (Light Emitting Diode) displays that tell you the
state of certain communication control and status lines. Internal Modems do
not have these lights, but you can get the equivalent of these lights in
several programs. Diagnostics such as Checkit or QAplus, or shareware
programs such as Breakbox, lights, and the Modem Doctor all have a feature
that will show you the status lines of the Modem. These lights are critical
to finding out if you have a hardware problem. Normally, when a Comm port has
been properly opened (either by Dos's Mode.com or by a communications
program), the Serial Port raises several control lines. As we discussed
above, the two most important are DTR (Data Terminal Ready) and its
complimentary status signal sent from the modem DSR, or Data Set Ready. Your
external Modem should show the state of these signals, but it will not
necessarily use these names. If you have a modem that follows Hayes Modems
nomenclature, the TR and MR lights will reflect the status of these two
lines. For your modem to work properly, the TR light (Terminal or Transmit
Ready which actually is the DTR line) has to be lit. The MR (Modem Ready,
usually the DSR line) also should be lit. If they are not, and the Serial
port has been opened properly, you may have a bad cable between your computer
and your modem. If you use Brkbox or Lights for your internal, you also
should see these lines lit. The Modem Doctor will perform a diagnostic and
display an error message if these lines are not up.
Another pair of indicators that are important are the TX and RX lights
(sometimes called SD and RD). These are the transmit and receive indicators
on your modem. When you are running a communications program in the terminal
mode and you press a key, the TX light should flash (saying that the modem
got a character) and the then RX light should flash (saying that the modem
echoed it back to the computer. If one or the other is missing, you might
have a bad cable again, or a bad Serial port. If the MR light is out, then
there may be some problem with your modem. Also, some modems have another
light called a MC (or Modem Check) light. If this lights, that could mean
there is something wrong with your modem. Some modems have an extra set of
lights for the RTS (Ready to send) and CTS (Clear to send) lines. Again,
these handshaking lines are important in high-speed modems, but unless your
communications program is looking for these signals, they can be disregarded
as a source of a problem. Most communication programs have an option to
select RTS signaling or not. If you cannot communicate with your modem, check
to see if you have accidentally activated this feature in your communications
program or purchase a serial cable that has all of the handshaking pairs
carried out to the appropriate pins. OK- so all the lights are correct. What
next? Well one problem might be, if you type a character to the modem it
comes back on your screen fine, but when you try to call a BBS or while you
are connected things go kind of strange, what is the next thing to check?
Modem 404 - Interrupts and you
The PC has limited resources for Serial Ports, in fact the ROM-BIOS only
supports 2 of them. However, there are industry standards that expand this to
4 Serial Ports. 4 Serial Ports should be enough for the average user, but the
problem is that you can only use 2 of them at a time. The reason for this is
due to the fact that they must share IRQ lines. Each time a character is
received by a modem, it has to get the attention of the computer by raising
an Interrupt Request Line (IRQ). PC type computers have 8 of these lines, AT
type computers have at least 16. The 8259 Interrupt controller chip handles
these requests for attention. By design, COM1 uses IRQ4 and COM2 uses IRQ3.
IRQ7 is assigned to a printer, IRQ5 to the Hard Drives. It is possible to use
COM1 and COM2 or COM3 and COM4 at the same time, but you cannot use COM1 and
COM3 or COM2 and COM4 at the same time because these share IRQ lines.
Confused??? Well, to make it easier to understand, if you have a computer
with built-in Serial Ports and you want to use an internal modem, you just
might wind up with an IRQ conflict or a Serial Port address conflict. What
happens is that the computer is actually talking to two ports at the same
time, and that can cause bad characters, false errors, jam-ups or
intermittent problems especially at higher speeds. If you have a Serial Port
conflict, you might be able to work around that. If you have a built-in
Serial Port assigned to COM1, you might be able to disable it by removing a
jumper. If you are not technically inclined and don't feel like playing with
the inside of the machine and are lucky enough to have an internal modem that
can be assigned from COM1 to COM4, then you can use another Comm Port
assignment for the Modem. You will still have to watch your IRQ conflicts, so
if you are using COM1 lets say for a mouse and you want to use your modem at
the same time, then it has to be COM2 or COM4 so the modem will use an IRQ3
while the mouse will use IRQ4. Another way out would be if your modem uses
IRQ7 or IRQ5. You could assign it to COM3 or COM4 and use one of these
different IRQ lines. Remember though, IRQ5 and IRQ7 are reserved for other
devices, so you still might not be able to get around the conflict without
disabling one of the built-in Serial ports. Also, if you needed to use 3 or
more COMM ports at the same time, you would need to use another IRQ line.
However, if you do not need to use 3 or more COMM ports at one time, then it
is best to stick to the reserved IRQ4 and IRQ3 for all of your activity.
Graduation Day
Well here we sit at the end of our class. If you save these articles you
will have a good source of reference material. However, this material is far
from complete. Its an introduction. You need to follow through and build on
what you have seen here. Take a trip to the library, or read your modem
manual, or pick up one of the many books written to guide you through PC
communicaitons and that help you peek inside your PC. In any case I hope that
these 4 articles have helped you understand more about your modem, and I
would love to hear your comments. Just send them to the address above.