~~NOTOC~~
A> KEMPSTON MOUSE

This mouse manufactured by [[en:companias:Kempston Data|Kempston Data]] is a peripheral that equips the [[en:pcw|PCW]] ecosystem with a control device that streamlines software operations, particularly inside graphics suites, connecting directly via its rear interface card.

Hardware Architecture
Technical Overview

With the introduction of the mouse system, choosing command variables and executing screen cursor tracking ceased to depend exclusively on legacy keyboard layout inputs. Given the stark ergonomics, simplicity, and speed benefits unlocked by this newly engineered hardware tool, workstation operators rapidly migrated toward software utilities bundled with input hardware integration.

In practice, out of the three variables backing the ecosystem (expansion adapter card, device drivers, and the mouse unit itself), only the interface adapter was engineered directly by Kempston. Sourcing the software development tracking required invoking the external services of HiSoft, while the core pointing device represents a custom OEM model built by Logitech, the highly regarded Swiss firm globally acknowledged for the premium build quality of its product families.

The entire retail compilation comes presented from the factory inside a bulky styrofoam case enclosure. Installing the expansion module is exceptionally fast and simple.

First, mate the expansion card block into the back expansion port edge located at the rear panel of the workstation (retaining the golden rule that handling slots must be executed strictly while the computer is turned off). Following this step, simply attach the input unit cable to the 9-pin D-sub port interface embedded on the board layout, and trigger its resident background environment by executing the control driver hosted on the bundled software utilities floppy disk.

Alongside the controller engine, this support disk houses a built-in checking utility macro designed to verify proper peripheral responses, paired with advanced GSX vector display extensions for accelerated graphics tracking.

The software background driver runs as a resident TSR macro, remapping tracking inputs to mimic legacy cursor keyboard layouts along with custom key combinations like ALT+C and ALT+R (governing Left Click and Right Click actions respectively). Furthermore, tracking resolution parameters are also regulated by this software layer, mapping motion scaling curves on a custom index ranging from two to nine, with the core factory parameter locked at a baseline of four. All variable limits can be patched either temporarily or permanently, managing whether new variables overwrite existing registry blocks during storage initialization.

Consequently, operators can patch the tracking to sync with virtually any productivity tool, as remapping the key matrices to align with the application parameters is a straightforward process. However, this logic is inherently incompatible with direct-boot master software copies. Despite this, testing loops reveal certain programs intentionally disregard mouse registers altogether, even when the extension matches the exact serial inputs expected by the software routine.

Another item of note is KTEST, the diagnostic utility block designed to verify physical coordinate tracking. The functional depth of this evaluation module is somewhat lean, yet it remains highly practical for locking down your preferred tracking scaling index and auditing mapped key registers.

Lastly, the integrated GSX environment drivers allow the pointing hardware to function smoothly inside any workstation application relying on graphic layer extensions under CP/M architectures. Configuring these driver blocks involves a slightly more complex layout, specific to each separate application environment.

Looking at the raw hardware layout, the module splits into two core blocks: the interface adapter and the pointing controller unit. The interface is simply a white plastic module housing the expansion edge array and a standard 9-pin output jack. Its internal layout is incredibly simple: a double-sided printed circuit board populated with standard logic IC chips, alongside a small cluster of RAM arrays.

The mouse unit, as previously outlined, is engineered by Logitech, displaying an immediate physical trait that surprises users: its extremely low weight. Tracking is managed via an optomechanical layout, meaning that as the unit glides across a surface, it rotates two internal slotted encoder wheels that break optical beam paths, passing directional data and speed vectors back to the CPU. Capturing button inputs relies on a pair of integrated mechanical micro-switches.

Initially, pointing devices emerged as part of an entire philosophy transforming human-computer interaction, representing the cornerstone block of the emerging WIMP computing layouts (windows, icons, mouse and pointer). Nonetheless, the efficiency gains of deploying these input devices across unrelated text environments have been clearly proven. While not strictly mandatory for administering database records or manipulating a word processor, it is exceptionally well-suited for heavy vector design suites, which is precisely where the core implementation of the GSX graphic subsystem becomes highly valuable.

It stands, without a doubt, as a highly captivating peripheral archive boasting massive flexibility. Its adaptive configuration layout makes it virtually compatible with almost all legacy software suites running today. Furthermore, it represents a robustly built hardware compilation backed by a titan among input device manufacturers.

A collection of known compatible software platforms that natively parse the Kempston Mouse includes:

Specifications and Hardware Registers (Extras)

The Kempston Mouse expansion board utilizes three distinct I/O ports (208, 209, and 212) to handle hardware interrupts, mapped as follows:

Port DecPort HexFunction / Register Mapping
2080D0hMouse X-Coordinate (Tracks horizontal motion vectors, value index 0-255). Mirror registers can also be indexed from 0D2h.
2090D1hMouse Y-Coordinate (Tracks vertical motion vectors, value index 0-255). Mirror registers can also be indexed from 0D3h.
2120D4hMouse Button Status Registers (Mapped across a 2-bit matrix. Flips to 0 when clicked and resets to 1 at rest. Bit 0 = Left Button; Bit 1 = Right Button. All other tracking bits return 1).