From: iisakkil@lk-hp-7.hut.fi (Mika Iisakkila)
Subject: Re: Using more than 2 COM ports.
Organization: Helsinki University of Technology, Finland
Date: 10 Oct 92 13:31:34 GMT

Charles.Aulds@umagic.FIDONET.ORG (Charles Aulds) writes:

>Our question:  How does one use more than two serial ports on a PC,
>running DOS, and using Windows?

This is not short, but my best attempt at an answer anyway...

Under Windows, try to get a serial adapter card that will allow you to
configure both the I/O address and the IRQ lines. Windows 3.1 supports
more than 2 serial ports simultaneously, as long as they all have
separate IRQ lines. Unfortunately, in most cards you only have a
choice of IRQ3 or IRQ4 even though the I/O addresses may be
configurable to everywhere between COM1-COM4.

My personal solutions to this have been hardware hacks. In one case, I
had a 2S-1P adapter card, where the printer port IRQ was selectable
to either IRQ5 or IRQ7. I used jumper wires to route the IRQ lines
from the UARTs to these LPT IRQ lines and configured Windows
accordingly (in 3.1, this can be done via the Control Paned; in 3.0,
you'll have to edit system.ini by hand).

In another case, all IRQs in the lower part (2-8) were already
occupied, so I connected jumper wires from the UART IRQ lines to the
upper (16-bit) part of the bus connector. Windows lets you use any IRQ
between 2-15. Ugly, but now I have a system with 4 serial ports, 2
paraller ports, 1 Ethernet card, two hard disk controllers and a Sound
Blaster all using separate IRQs and everything works fine even under
Windows.

And how to find where to put these jumper wires? If you're not sure
what to do, don't do it - there is a potential risk of damaging your
expansion cards and/or the motherboard with inadvertent short
circuits. It depends on the type of the I/O card too, of course.
I'll use as an example the 2 serial / 1 paraller cards that I have:

J1 J2     J3

1o 4o     7o
2o 5o     8o
3o 6o     9o

J1 selects the IRQ for serial port 1 - IRQ3 if 1-2 is shorted, IRQ4 if
2-3 is shorted. J2 does the same for serial port 2. J3 selects the IRQ
for the paraller port on the card - IRQ5 if 7-8 is shorted and IRQ7 if
8-9 is shorted. Clearly, pin 2 is the interrupt request from the UART
and pins 1 and 3 go directly to the IRQ3 and IRQ4 bus pins, which can
be verified with a multimeter. Same applies for pins 4, 5 and 6. Pin 8
is the interrupt request line from the parallel port, and pins 7 and 9
go to the IRQ5 and IRQ7 bus pins. I/O address selection jumpers are
not shown here.

Now all you have to do is leave all these jumpers unconnected. Then
solder jumper wires between 2-7 and 5-9. Configure the I/O addresses
of the card to COM3 and COM4 (3e8 and 2e8) and use the Control Panel
-> ports -> advanced setup to tell Windows that you have COM3 at
3e8/IRQ5 and COM4 at 2e8/IRQ7. Voila.

The parallel port on the card cannot be used by DOS after this,
because the BIOS will fail to recognize it due to the missing IRQ. It
does still exist at the configured address though, so software that
writes directly to it will still work.

If IRQ5 and IRQ7 are already taken on your system, get the bus
connector pinouts from somewhere and route the UART interrupt requests
to some other IRQ lines. This will require touching the motherboard
and a lot more care.

--
Segmented Memory Helps Structure Software