5150: Setting up Serial Mouse


I haven’t yet really found a good use for the mouse on the IBM PC 5150. Lemmings is so far about the best use that I have found, but at 4.77MHz even Lemmings runs a tad slow/sluggish to be enjoyable. SimCity essentially requires a mouse, but also runs much too slowly on the stock 5150 at 4.77MHz. I’ve yet to try if a V20 processor upgrade improved SimCity in a meaningful way.

Apple famously presented the use of the one-button mouse in 1984 with the Macintosh system (although the term mouse was used as early at 1968, see the “mother of all demos“). Microsoft Mouse 1.0 was also released in 1984, and the following year in 1985 Microsoft Mouse 5.0 came with a decent “paint” drawing program. Thereafter, one-mouse button vs. two-mouse button design was a debate between these two systems from the very beginning.

The Apple ecosystem insisted on simplistic UI/UX (user interfaces) that could be performed with a single mouse click. In the early IBM PC “culture” there was a kind of preference for no mouse at all. That “culture” was command-line or keyboard-short-cut oriented. When the focus was on productivity (entering numbers, word processing, creating content), expert typist never wanted to take their hands away from the keyboard (doing so would interrupt the workflow).

There is a lot of rationale behind the Apple one-button mouse design philosophy (e.g. such as to simplify application development, simplify technical support procedures). Meanwhile, the “MS-DOS” culture could experiment with three or more mouse buttons, and eventually innovated the inclusion of the mouse-wheel in 1996. Still, the “keep my hands on the keyboard” philosophy dominated much of the IBM PC “terminal oriented” world. Gradually starting around 1988, with the PS/2, mouse support within applications eventually became standard (most especially with the release of Windows 3.0 in 1990). With Apple, the mouse (M0100) was standard on the Macintosh since 1984 (essentially also using a DB9 serial port interface, “DE-9”).

  • A “bus mouse” will use an expansion card, such that the mouse input talks directly across the ISA bus. These were sort of early versions of what became the “PS/2” style mini-DIN connector years later.
  • If you only have one serial port, then a “serial mouse” and “serial joystick” and “serial modem” may all compete for that one serial port (DB9 connection).

Here is a sample of a typical serial mouse (it says “serial” at the top, and lists “serial DB9 connection”.

Mouse Driver Software

Notice in the above image example, it says “IBM/PC Compatible.” This should mean the mouse is compatible with the IBM DB9 serial pin connector, and also compatible the Microsoft Mouse software. This software adds interrupt routines (INT 33h) to standardize how applications query for mouse-state information (cursor position, bottom presses). This way, application developers don’t need to spend time adding code to support every type of mouse hardware. A “mouse driver” can also influence things like the shape and speed of the mouse cursor.

The “mouse driver” will consume some system memory and newer versions will tend to have more features. There are various alternate “mouse driver” software available, but the one I settled on using is:

Microsoft Mouse 8.20 (available here)

There exist both a MOUSE.SYS that can be loaded in the config.sys on startup, or this 8.20 version also includes a MOUSE.COM that is under 60KB. I’m not sure what features Microsoft Mouse 9.00 adds, but it is loaded with a MOUSE.EXE that is over 90KB.

If you get into a situation of loading a mouse driver, then end up not having enough system memory to load an application, then you can try older or alternate mouse driver versions. Or: the MOUSE.SYS is a way to have the driver software be loaded into extended memory, if the version of DOS being used supports that (6.X, possibly 5.X).

Leave a Reply

%d bloggers like this: