🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.os.msdos.misc
Article #74

More than 4 com-ports under Ms-dos 5.0??

#74
From: Paula Stockholm
Date: Fri, 30 Oct 1992 15:41
99 lines
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!paula

Show 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