home *** CD-ROM | disk | FTP | other *** search
/ Windoware / WINDOWARE_1_6.iso / bugfix / msftfix2 / rodent.fix next >
Text File  |  1991-01-16  |  3KB  |  84 lines

  1.  
  2. Microsoft Mouse COM port interrupt fix.
  3.  
  4. Errata: The interrupt mask shown for INT 5 was incorrect.  I did
  5.         not realize it until I had to use it.  BFh should have 
  6.         been DFh.
  7.  
  8. The Microsoft mouse driver makes a dangerous assumption when it
  9. finds a serial mouse attached to your computer.  If you only have
  10. two COM ports all will be transparently well.  But for those of you
  11. wanting to connect the mouse to COM3 or COM4 you run into a 
  12. situation that assumes COM3 is using INT 4 and COM4 uses INT 3.
  13. For most default installations this is correct, but what if you
  14. also want to use another interrupt driven serial port that
  15. uses the same interrupt vector.  You can't.  The mouse driver
  16. grabs it and hangs on.  The only way to correct it is to move
  17. that serial port to another interrupt vector, say INT 2.  The
  18. mouse driver runs and indicates that it installed, but all is
  19. not well, your mouse doesn't work.  The driver install ASSUMES
  20. a defacto STANDARD configuration and doesn't bother even checking!
  21.  
  22. To remedy the situation is an easy patch to a table in the mouse
  23. driver.  Use a file hex editor like NORTON or PCTOOLS and search
  24. MOUSE.COM or MOUSE.SYS for:
  25.  
  26.   F8 03 0C EF    ;Com 1
  27.   F8 02 0B F7    ;Com 2
  28.   E8 03 0C EF    ;Com 3
  29.   E8 02 0B F7    ;Com 4
  30.  
  31.  
  32. For version 7.00 MOUSE.COM this is at Offset 3468h.
  33. For version 7.00 MOUSE.SYS this is at Offset 34C0h.
  34. For version 7.04 MOUSE.COM this is at Offset 46BFh.
  35. For version 7.04 MOUSE.SYS this is at Offset 4717h.
  36.  
  37. If you are a Windows user then you will also need to patch Windows.
  38. For some reason Microsoft decided to have Windows drive the mouse
  39. itself so if you only use your mouse for Windows then you need not
  40. load the mouse driver before running Windows.
  41.  
  42. For version 2.11 Windows 386 the table is in WIN200.BIN.  The table is
  43. as described above execpt it only contains COM1 and COM2 port info.
  44. The table offset will vary from configuration to configuration.  WIN200.BIN
  45. is created during SETUP depending on the equipment configuration. 
  46. In any case the patch will be the same.
  47.  
  48. For version 3.0 Windows the table is in MOUSE.DRV at offset 82Ch.
  49.  
  50. The first two bytes of each entry are the serial ports base address.
  51.  
  52. The next byte is the actual interrupt vector.  The interrupt jumpers most
  53. of you are used to dealing with refer to the designations as they are
  54. assigned on the PC bus not the actual microprocessor vectors.  The bus
  55. interrupt requests are routed to an 8259 interrupt controller.  This
  56. device is offset from INT 0 by 8. So INT 2 (Bus) is in actuality INT 0Ah.
  57.  
  58. The last byte is a value that gets ANDed with the value on I/O port 21h
  59. which is the 8259 interrupt controller control port.  This is a bit mapped
  60. port which indicates which interrupts are pending.  The LSB is INT 0 and
  61. the MSB is INT 7.
  62.  
  63. For convenience these are the numbers you need to use for your interrupt
  64. choice:
  65.  
  66.  INT 2 - 0A FB
  67.  INT 3 - 0B F7
  68.  INT 4 - 0C EF
  69.  INT 5 - 0D DF
  70.  INT 7 - 0F 7F
  71.  
  72. So decide which port you are going to connect to, pick an interrupt and patch
  73. one of the entries.  I used COM3 and INT2 and patched the first table
  74. entry (COM1) as:
  75.  
  76.   0E 03 0A FB
  77.  
  78. As for other versions of Windows or other versions of mouse drivers I
  79. would assume the same patch would work just go in and look for it!
  80.  
  81.  Dave Karr 
  82.  
  83.  Email via Exec-PC
  84.  (414) 789-4210