| |
| en:hardware:perifericos:kempston_mouse [2026/05/14 06:06] – creado jesus | en:hardware:perifericos:kempston_mouse [2026/05/15 08:10] (actual) – jesus |
|---|
| .pcw-subtitle-box { background-color: #00ff00; color: #000b00 !important; padding: 5px 12px; font-weight: bold; display: inline-block; margin: 20px 0 15px 0; text-transform: uppercase; position: relative; z-index: 3; font-family: 'Courier New', Courier, monospace; } | .pcw-subtitle-box { background-color: #00ff00; color: #000b00 !important; padding: 5px 12px; font-weight: bold; display: inline-block; margin: 20px 0 15px 0; text-transform: uppercase; position: relative; z-index: 3; font-family: 'Courier New', Courier, monospace; } |
| | |
| /* --- PORT SPECIFICATIONS (RETRO TABLE) --- */ | /* --- PORT MAPPING & REGISTERS (RETRO DATA TABLE) --- */ |
| .tech-spec-box-full { border: 1px solid #004400; background: rgba(0, 15, 0, 0.6); padding: 15px; width: 100%; max-width: 900px; box-sizing: border-box; margin: 15px 0; z-index: 3; position: relative; } | .tech-spec-box-full { border: 1px solid #004400; background: rgba(0, 15, 0, 0.6); padding: 15px; width: 100%; max-width: 900px; box-sizing: border-box; margin: 15px 0; z-index: 3; position: relative; } |
| .tech-table { width: 100%; border-collapse: collapse; font-size: 0.85em; } | .tech-table { width: 100%; border-collapse: collapse; font-size: 0.85em; } |
| .tech-table td { padding: 8px; color: #00ff00; border-bottom: 1px solid #003300; } | .tech-table td { padding: 8px; color: #00ff00; border-bottom: 1px solid #003300; } |
| | |
| /* --- GALLERIES AND CARDS --- */ | /* --- GALLERIES AND PACKAGING LAYOUTS --- */ |
| .drive-grid-container { display: flex; flex-direction: column; gap: 20px; margin: 25px 0; position: relative; z-index: 3; align-items: center; justify-content: center; } | .drive-grid-container { display: flex; flex-direction: column; gap: 20px; margin: 25px 0; position: relative; z-index: 3; align-items: center; justify-content: center; width: 100%; } |
| .drive-card { border: 1px solid #004400; background: rgba(0, 15, 0, 0.6); padding: 20px; display: flex; flex-direction: column; gap: 15px; transition: 0.2s; align-items: center; width: 100%; max-width: 900px; box-sizing: border-box; } | .drive-card { border: 1px solid #004400; background: rgba(0, 15, 0, 0.6); padding: 20px; display: flex; flex-direction: column; gap: 15px; transition: 0.2s; align-items: center; width: 100%; max-width: 900px; box-sizing: border-box; } |
| .drive-card:hover { border-color: #00ff00; background: rgba(0, 30, 0, 0.8); } | .drive-card:hover { border-color: #00ff00; background: rgba(0, 30, 0, 0.8); } |
| | |
| /* --- PACKAGING AND IMAGES SIDE-BY-SIDE --- */ | /* --- PACKAGING AND INPUT ARRAYS IN PARALLEL --- */ |
| .gallery-two-inline { display: flex; gap: 15px; flex-direction: row; flex-wrap: nowrap; justify-content: center; width: 100%; } | .gallery-two-inline { display: flex; gap: 15px; flex-direction: row; flex-wrap: nowrap; justify-content: center; width: 100%; } |
| .gallery-two-inline .img-frame { flex: 1; max-width: 250px; } | .gallery-two-inline .img-frame { flex: 1; max-width: 250px; } |
| |
| /* --- GENERAL FRAMES --- */ | /* --- GENERAL RETRO FRAMES --- */ |
| .img-frame { border: 2px solid #00ff00; padding: 6px; background: #000; text-align: center; display: inline-flex; flex-direction: column; align-items: center; box-sizing: border-box; transition: 0.3s ease; } | .img-frame { border: 2px solid #00ff00; padding: 6px; background: #000; text-align: center; display: inline-flex; flex-direction: column; align-items: center; box-sizing: border-box; transition: 0.3s ease; } |
| .img-frame:hover { transform: scale(1.05); border-color: #00ff00; box-shadow: 0 0 15px rgba(0, 255, 0, 0.4); } | .img-frame:hover { transform: scale(1.05); border-color: #00ff00; box-shadow: 0 0 15px rgba(0, 255, 0, 0.4); } |
| .img-label { font-size: 0.72em; color: #00aa00; margin-top: 8px; font-weight: bold; text-transform: uppercase; letter-spacing: 0.5px; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; width: 100%; } | .img-label { font-size: 0.72em; color: #00aa00; margin-top: 8px; font-weight: bold; text-transform: uppercase; letter-spacing: 0.5px; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; width: 100%; } |
| | |
| | /* --- LIGHTBOX MODAL SETUP: STRICT NATIVE REAL SIZE --- */ |
| .modal-pcw { display: none; position: fixed; z-index: 9999; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 10, 0, 0.95); overflow: auto; } | .modal-pcw { display: none; position: fixed; z-index: 9999; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 10, 0, 0.95); overflow: auto; } |
| .modal-pcw:target { display: block; text-align: center; } | .modal-pcw:target { display: block; text-align: center; } |
| .close-overlay { display: inline-block; min-width: 100%; min-height: 100%; padding: 40px; box-sizing: border-box; text-decoration: none !important; cursor: zoom-out; vertical-align: middle; } | .close-overlay { display: inline-block; min-width: 100%; min-height: 100%; padding: 40px; box-sizing: border-box; text-decoration: none !important; cursor: zoom-out; vertical-align: middle; } |
| .modal-content { max-width: 90% !important; max-height: 85vh !important; border: 4px solid #00ff00; box-shadow: 0 0 50px rgba(0, 255, 0, 0.5); margin: 5vh auto; display: inline-block; } | .modal-content { border: 4px solid #00ff00; box-shadow: 0 0 50px rgba(0, 255, 0, 0.5); margin: 5vh auto; display: inline-block; max-width: none !important; max-height: none !important; height: auto !important; } |
| </style> | </style> |
| |
| <!-- INTERACTIVE LIGHTBOX LAYERS --> | <!-- INTERACTIVE MODAL LIGHTBOX LAYERS --> |
| <div id="m1" class="modal-pcw"><a href="#close" class="close-overlay"><img class="modal-content" src="/lib/exe/fetch.php?media=hardware:perifericos:Kempston_Mouse_2.jpg"></a></div> | <div id="m1" class="modal-pcw"><a href="#close" class="close-overlay"><img class="modal-content" src="/lib/exe/fetch.php?media=hardware:perifericos:Kempston_Mouse_2.jpg"></a></div> |
| <div id="m2" class="modal-pcw"><a href="#close" class="close-overlay"><img class="modal-content" src="/lib/exe/fetch.php?media=hardware:perifericos:Kempston_Mouse.jpg"></a></div> | <div id="m2" class="modal-pcw"><a href="#close" class="close-overlay"><img class="modal-content" src="/lib/exe/fetch.php?media=hardware:perifericos:Kempston_Mouse.jpg"></a></div> |
| | |
| <div class="content-body"> | <div class="content-body"> |
| <p>This mouse manufactured by </html>[[..:..:companias:Kempston Data|Kempston Data]]<html> is a peripheral that provides the </html>[[..:..:PCW]]<html> ecosystem with a pointer device, making tasks much easier when using software—especially graphics utilities—by connecting through its rear interface.</p> | <p>This mouse manufactured by </html>[[en:companias:Kempston Data|Kempston Data]]<html> is a peripheral that equips the </html>[[en:pcw|PCW]]<html> ecosystem with a control device that streamlines software operations, particularly inside graphics suites, connecting directly via its rear interface card.</p> |
| </div> | </div> |
| |
| <div class="pcw-subtitle-box">Hardware Gallery</div> | <div class="pcw-subtitle-box">Hardware Architecture</div> |
| | |
| <div class="drive-grid-container"> | <div class="drive-grid-container"> |
| <div class="drive-card"> | <div class="drive-card"> |
| <!-- SIDE-BY-SIDE VISUAL DETAILS (PACKAGING AND PERIPHERAL) --> | <!-- PARALLEL DATA FIELDS (PACKAGING AND CONTROLLER MODULE) --> |
| <div class="gallery-two-inline"> | <div class="gallery-two-inline"> |
| <div class="img-frame"><a href="#m1"><img src="/lib/exe/fetch.php?media=hardware:perifericos:Kempston_Mouse_2.jpg"></a><span class="img-label">Original Packaging</span></div> | <div class="img-frame"><a href="#m1"><img src="/lib/exe/fetch.php?media=hardware:perifericos:Kempston_Mouse_2.jpg"></a><span class="img-label">Original Packaging</span></div> |
| <div class="img-frame"><a href="#m2"><img src="/lib/exe/fetch.php?media=hardware:perifericos:Kempston_Mouse.jpg"></a><span class="img-label">Mouse Device</span></div> | <div class="img-frame"><a href="#m2"><img src="/lib/exe/fetch.php?media=hardware:perifericos:Kempston_Mouse.jpg"></a><span class="img-label">Mouse Input Unit</span></div> |
| </div> | </div> |
| </div> | </div> |
| </div> | </div> |
| |
| <div class="pcw-subtitle-box">General Description</div> | <div class="pcw-subtitle-box">Technical Overview</div> |
| | |
| <div class="content-body"> | <div class="content-body"> |
| <p>With the advent of the mouse, option selection systems and everything related to cursor movement on the screen ceased to be exclusively keyboard functions. Given the advantages presented by this new peripheral—comfort, ease of use, and speed—users opted to lean toward applications that included this complement.</p> | <p>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.</p> |
| |
| <p>In reality, out of the three elements that make up the system (interface, software, and mouse), only the interface was produced by <strong>Kempston</strong>. To develop the software, the services of <strong>HiSoft</strong> were used, and the mouse itself is a model by <strong>Logitech</strong>, the Swiss brand renowned for the high-quality build of its products.</p> | <p>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 <strong>Kempston</strong>. Sourcing the software development tracking required invoking the external services of <strong>HiSoft</strong>, while the core pointing device represents a custom OEM model built by <strong>Logitech</strong>, the highly regarded Swiss firm globally acknowledged for the premium build quality of its product families.</p> |
| | |
| <p>The entire bundle comes presented in a voluminous white polystyrene box. The installation of the mouse is straightforward and quick.</p> | <p>The entire retail compilation comes presented from the factory inside a bulky styrofoam case enclosure. Installing the expansion module is exceptionally fast and simple.</p> |
| |
| <p>First, the interface must be connected to the expansion port located at the rear of the machine (remember that any connection or disconnection to this slot must be done strictly with the computer turned off). After this, all that remains is to "plug" the mouse into the nine-pin connector built into the interface and activate it using the driver found on the utility disk supplied with the mouse itself.</p> | <p>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.</p> |
| |
| <p>In addition to the mouse controller, this disk contains a small program to verify the proper operation of the peripheral and some GSX drivers for handling graphics. But let's take it one step at a time.</p> | <p>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.</p> |
| |
| <p>The controller is a terminate-and-stay-resident (TSR) program that makes the mouse emulate the cursor movement keys, as well as the <kbd>ALT</kbd>+<kbd>C</kbd> and <kbd>ALT</kbd>+<kbd>R</kbd> keys (left and right button respectively). Furthermore, mouse sensitivity is also handled by this software, expressed on a scale from two to nine, though the factory default value is four. All these parameters can be modified either temporarily or permanently, meaning you can configure whether the new values are saved to disk or not.</p> | <p>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 <kbd>ALT</kbd>+<kbd>C</kbd> and <kbd>ALT</kbd>+<kbd>R</kbd> (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.</p> |
| |
| <p>This way, it would be possible to make the mouse work with practically any program, as it would be enough to map the keys emulated by the mouse according to the ones used by the application in question. Although, obviously, this is not compatible with direct-boot software. Nevertheless, it has been observed that certain software ignores the mouse entirely, even though it generates the same serial signal as the keys used by the program.</p> | <p>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.</p> |
| |
| <p>It is also worth highlighting <strong>KTEST</strong>, the program that allows verifying the mouse operation. The practical utility of this software is not overly extensive, though it is always handy for setting the mouse sensitivity level and auditing which keys are mapped.</p> | <p>Another item of note is <strong>KTEST</strong>, 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.</p> |
| | |
| <p>Finally, the GSX drivers allow the mouse to work without major issues with all those applications that make use of this graphical extension under CP/M. The installation process is somewhat more complex and, in a sense, specific to each program.</p> | <p>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.</p> |
| |
| <p>Regarding the hardware, it consists of two parts: the interface and the mouse itself. The interface is simply a white box with an edge connector for the expansion bus and a nine-pin output socket. Its interior could not be simpler: a double-sided printed circuit board with a series of integrated circuits, including some RAM modules.</p> | <p>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.</p> |
| | |
| <p>The mouse, as previously mentioned, is manufactured by Logitech, featuring a detail that quickly surprises: its very light weight. The mechanism is optomechanical, meaning that as the mouse moves, it rotates two small slotted wheels that interrupt internal light beams, which in turn indicate the direction and speed of movement to the computer. To detect if either of the two buttons has been pressed, the mouse utilizes two small microswitches.</p> | <p>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.</p> |
| |
| <p>Initially, mice emerged as another element within a whole way of understanding the human-machine interface, serving as the cornerstone of so-called VIMP environments (windows, icons, mouse, and pointer). Despite this, the advantages of using these input devices for other tasks have been proven time and again. While it might not be strictly clear why a database or word processor user would need a mouse, it is highly suitable for all types of design work, and this is where the GSX graphics extension support becomes particularly interesting.</p> | <p>Initially, pointing devices emerged as part of an entire philosophy transforming human-computer interaction, representing the cornerstone block of the emerging WIMP computing layouts (<em>windows, icons, mouse and pointer</em>). 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.</p> |
| |
| <p>It is, without a doubt, an interesting peripheral with multiple applications. The ease of adapting it to different environments makes it virtually compatible with almost all software existing today. Furthermore, it is a well-manufactured product backed by a major name in the world of computer peripherals.</p> | <p>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.</p> |
| |
| <p>Some of the compatible software titles that actively work with the Kempston Mouse include:</p> | <p>A collection of known compatible software platforms that natively parse the Kempston Mouse includes:</p> |
| <ul> | <ul> |
| <li>Star Glider</li> | <li>Star Glider</li> |
| <li>Wordstar</li> | <li>Wordstar</li> |
| <li>SuperCalc 2</li> | <li>SuperCalc 2</li> |
| <li>All Hisoft software</li> | <li>The complete software catalogue from Hisoft</li> |
| <li>Cyrus II</li> | <li>Cyrus II</li> |
| <li>Cracker 2</li> | <li>Cracker 2</li> |
| </div> | </div> |
| |
| <div class="pcw-monitor-ultra"> | <div class="pcw-subtitle-box">Specifications and Hardware Registers (Extras)</div> |
| <div class="pcw-subtitle-box">Specifications and Ports (Extras)</div> | |
| | <div class="content-body"> |
| <div class="content-body"> | <p>The Kempston Mouse expansion board utilizes three distinct I/O ports (208, 209, and 212) to handle hardware interrupts, mapped as follows:</p> |
| <p>The Kempston Mouse interface utilizes three Input/Output ports (208, 209, and 212) for its operation, detailed below:</p> | </div> |
| </div> | |
| |
| <div class="tech-spec-box-full"> | <div class="tech-spec-box-full"> |
| <table class="tech-table"> | <table class="tech-table"> |
| <thead> | <thead> |
| <tr><th>Dec Port</th><th>Hex Port</th><th>Concept / Register</th></tr> | <tr><th>Port Dec</th><th>Port Hex</th><th>Function / Register Mapping</th></tr> |
| </thead> | </thead> |
| <tbody> | <tbody> |
| <tr><td>208</td><td>0D0h</td><td>Mouse X coordinate (Horizontal axis position, range 0-255). Can also be read from 0D2h.</td></tr> | <tr><td>208</td><td>0D0h</td><td>Mouse X-Coordinate (Tracks horizontal motion vectors, value index 0-255). Mirror registers can also be indexed from 0D2h.</td></tr> |
| <tr><td>209</td><td>0D1h</td><td>Mouse Y coordinate (Vertical axis position, range 0-255). Can also be read from 0D3h.</td></tr> | <tr><td>209</td><td>0D1h</td><td>Mouse Y-Coordinate (Tracks vertical motion vectors, value index 0-255). Mirror registers can also be indexed from 0D3h.</td></tr> |
| <tr><td>212</td><td>0D4h</td><td>Mouse button state (Mapped across 2 bits. Returns 0 if pressed, 1 at rest. Bit 0 = Left; Bit 1 = Right. Other bits return 1).</td></tr> | <tr><td>212</td><td>0D4h</td><td>Mouse 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).</td></tr> |
| </tbody> | </tbody> |
| </table> | </table> |
| </div> | |
| </div> | </div> |
| |