[conspire] (forw) Re: help?
rick at linuxmafia.com
Wed Aug 25 02:25:10 PDT 2004
(Illustrating some of the many reasons I dislike internal modems:
I keep having to explain all this stuff, over and over.)
----- Forwarded message from Rick Moen <rick at linuxmafia.com> -----
Date: Wed, 25 Aug 2004 02:23:55 -0700
From: Rick Moen <rick at linuxmafia.com>
To: "Grant E. Metcalf" <thegems at shellworld.net>
Subject: Re: help?
Hi, Grant. This e-mail may be a little rushed, because I'm trying to
finish up for the day. My apologies in advance.
An external modem of any respectable quality, indeed, makes things easy
on essentially any operating system. Here are a few words as to why:
Prior to approximately the first Pentium generation of machines, you may
recall that PCs tended to come with a single built-in serial port. (I'm
talking, here, about serial ports as such, not the ones incorporated
inside internal modems.) More recent PCs, by contrast, have provided
two serial ports, rather than one. Thus, an internal modem's serial
port on a modern PC tends to become the PC's third serial port, while on
an earlier PC it would become the second such port.
The number is significant because of yet another instance of bad
planning on the part of the PC's designers: They really never imagined
that many people would ever equip a PC with more than two serial ports,
total. Therefore, in decreeing the standard assignments of IRQs
(hardware interrupts) to various serial ports, they decided that the
assignments for COM3 and COM4 (to use the DOS terms; in Linux, those
would be /dev/ttyS2 and /dev/ttyS3) would duplicate those of COM1 and
COM2 (which in Linux are called /dev/ttyS0 and /dev/ttyS1).
Now, there are circumstances in which it's possible to harmlessly share
IRQs between physical devices, but in general the practice is greatly to
be avoided. So, in practice, few PCs actually use the supposedly
"standard" IRQ assignments for COM3 and COM4. In effect, those ports
are not standardised at all: Each PC does it differently.
If I understand you correctly, you use Commo in a DOS session underneath
Win98 (thus allowing use of your screen reader software). Your internal
modem is probably either jumpered to use some specific (inherently
non-standard) IRQ and I/O base address, or is jumpered to be assigned
those values dynamically by the Plug and Play controller chip. In
either case, I imagine Commo has been configured to communicate with
your modem using the IRQ and I/O base address values its serial port
Hypothetically, imagine that you had the same situation, except that
your PC had only one built-in serial port, such that the internal modem
could be jumpered to be COM2. In that case, both of your serial ports
(the motherboard-based one, and the one built into your modem) would
have highly standard IRQ and I/O base address values, which are known to
all relevant software on all PC operating systems. For example, the
standard startup configuration files on all Linux distributions will
reliably, correctly initialise what DOS users would call the COM1 and
COM2 ports -- because they are standard.
Thus, one reason external modems are less problematic is simply that
they don't add an additional serial port to PCs that -- these days --
tend to come with two such ports already.
As an internal modem user, if you had anticipated this problem, you
could have disabled one of your PC's two built-in ports (doing so inside
the PC's motherboard BIOS Setup program). Let's say you would disable
COM2 and leave COM1 enabled. Your speech synth would then remain
connected to COM1, and your internal modem could be jumpered to become
COM2. Of course, this work would have to be performed by a sighted
friend or technician, since you couldn't use your screen reader for the
Addressing your current situation using an external modem would
eliminate the need to do that reconfiguration -- but you would still
need to reconfigure Commo to use COM2 or COM1 (whichever one you connect
the modem to). The downside is, well, the need to pay for an external
modem -- plus a matching serial cable.
I would not advise buying a USB modem, because USB setup for modem
devices might be non-trivial (I have no relevant experience), and
because many USB modems are winmodems.
If I were in your shoes, I would seek help from a technically adept
sighted friend to (1) make sure your speech synth is on COM1, (2)
disable COM2 within the motherboard's BIOS Setup program, (3) jumper
your internal modem to become COM2, and (4) reconfigure Commo to use
COM2. But that's because I'd not want to be in a hurry to purchase new
In fact, I do have a strong preference in external modems, but it's not
cheap. Last I heard, my preferred external modem cost $265. It's the
US Robotics Courier V.Everthing V.90 External modem. Some of the
reasons for my prejudice are mentioned on the aforementioned essay page,
http://linuxmafia.com/~rick/faq/ (but that page is quite verbose).
That having been said, I'm not currently following my own advice, in
that I don't currently use modems, and therefore am not even sure
whether I have one or not (at the moment).
In any event, it seems to me that either of these options (disabling a
motherboard COM2, or adding an external modem) does necessitate
reconfiguring Commo, which might count as changing your "dialing setup".
The latter option requires money (for the modem and serial cable); the
former requires assistance from a sighted assistant.
The third option, of course, is to leave everything unchanged, and use
the Linux "ispnptools" to query the ISA Plug and Play controller chip at
boot time for your internal modem's IRQ and I/O base address values, and
feed those values to the "setserial" program to initialise your internal
modem's serial port correctly.
I could be missing something, but I hope that helps.
Cheers, Founding member of the Hyphenation Society, a grassroots-based,
Rick Moen not-for-profit, locally-owned-and-operated, cooperatively-managed,
rick at linuxmafia.com modern-American-English-usage-improvement association.
----- End forwarded message -----
More information about the conspire