Article View: comp.os.msdos.misc
Article #74More than 4 com-ports under Ms-dos 5.0??
From: Paula Stockholm
Date: Fri, 30 Oct 1992 15:41
Date: Fri, 30 Oct 1992 15:41
99 lines
5140 bytes
5140 bytes
This discussion appeared just in time - or a day late for me.
My problem has been just getting the BASIC 4 serial ports to work with
what I have for peripherials . . . Devices or programs that (a)
couldn't be set to COM3 or COM4 and (b) lack of ability to assign
non-standard interrupts.
I discovered this text article on our BBS. I have added the
information for Microsoft Mouse Drivers version 8.0. It got me
one more port . . .
This was seen under a text file called RODENT.FIX, dated 7/20/90. It is
credited to Dave Karr.
============================================================ Microsoft
Mouse COM port interrupt fix.
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĿ
³ The original credit to Dave Karr remains. I have only updated the ³
³ details for Microsoft Mouse version 8.0 and added the ALT values for ³
³ the file search -Paula Stockholm 10/29/92 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
The Microsoft mouse driver makes a dangerous assumption when it finds a
serial mouse attached to your computer. If you only have two COM ports
all will be transparently well. But for those of you wanting to
connect the mouse to COM3 or COM4 you run into a situation that assumes
COM3 is using INT 4 and COM4 uses INT 3. For most default installations
this is correct, but what if you also want to use another interrupt
driven serial port that uses the same interrupt vector. You can't.
The mouse driver grabs it and hangs on. The only way to correct it is
to move that serial port to another interrupt vector, say INT 2. The
mouse driver runs and indicates that it installed, but all is not well,
your mouse doesn't work. The driver install ASSUMES a defacto STANDARD
configuration and doesn't bother even checking!
To remedy the situation is an easy patch to a table in the mouse
driver. Use a file hex editor like NORTON or PCTOOLS and search
MOUSE.COM or MOUSE.SYS for:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĿ
³ Hold down the <ALT> key and enter these ³
³ values on the numeric keypad to locate the³
³ hex string. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
F8 03 0C EF ;Com 1 ³ 248/003/012/239 ³
F8 02 0B F7 ;Com 2 ³ 248/002/011/247 ³
E8 03 0C EF ;Com 3 ³ 232/003/012/239 ³
E8 02 0B F7 ;Com 4 ³ 232/002/011/247 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
For version 7.04 MOUSE.COM this is at Offset 46BFh. For version 7.04
MOUSE.SYS this is at Offset 4717h.
For version 8.00 MOUSE.COM this is at Offset 4240h. For version 8.00
MOUSE.SYS this is at Offset 4492h.
If you are a Windows user then you will also need to patch Windows. For
some reason Microsoft decided to have Windows drive the mouse itself so
if you only use your mouse for Windows then you need not load the mouse
driver before running Windows.
For version 2.11 Windows 386 the table is in WIN200.BIN. The table is
as described above except it only contains COM1 and COM2 port info. The
table offset will vary from configuration to configuration. WIN200.BIN
is created during SETUP depending on the equipment configuration. In
any case the patch will be the same.
For version 3.0 Windows the table is in MOUSE.DRV at offset 82Ch.
The first two bytes of each entry are the serial ports base address.
The next byte is the actual interrupt vector. The interrupt jumpers
most of you are used to dealing with refer to the designations as they
are assigned on the PC bus not the actual microprocessor vectors. The
bus interrupt requests are routed to an 8259 interrupt controller. This
device is offset from INT 0 by 8. So INT 2 (Bus) is in actuality INT
0Ah.(10)
The last byte is a value that gets ANDed with the value on I/O port 21h
which is the 8259 interrupt controller control port. This is a bit
mapped port which indicates which interrupts are pending. The LSB is
INT 0 and the MSB is INT 7.
For convenience these are the numbers you need to use for you interrupt
choice:
INT 2 - 0A FB INT 3 - 0B F7 INT 4 - 0C EF INT 5 - 0D BF INT 7 - 0F 7F
So decide which port you are going to connect to, pick an interrupt and
patch one of the entries. I used COM3 and INT2 and patched the first
table entry (COM1) as:
0E 03 0A FB
As for other versions of Windows or other versions of mouse drivers I
would assume the same patch would work just go in and look for it!
Dave Karr
Technical Details
Message-ID:
<720459715snx@nlbbs.UUCP>Path:
arc1-ca.pugleaf.net!sparky!uunet!rde!gator!nlbbs!uupms!paulaShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!rde!gator!nlbbs!uupms!paula From: paula@nlbbs.UUCP (Paula Stockholm) Newsgroups: comp.os.msdos.misc Subject: More than 4 com-ports under Ms-dos 5.0?? Message-ID: <720459715snx@nlbbs.UUCP> Date: Fri, 30 Oct 92 15:41:55 GMT Reply-To: paula@nlbbs.UUCP Distribution: world Organization: The Electronics Workbench Lines: 100