Files
SDD 3fd1e13b2e docs: keyboard/mouse protocol spec — LK401 (LK201 protocol) + VSXXX-AA mouse, sources, MAME lk201 device
Distils public docs into reference/keyboard-mouse/PROTOCOL.md for the level-1
Keyboard (27) / Mouse (26) device tests:
- keyboard: 4800 8N1 RS-423, self-test via FD -> 01 00 00 00 (errors 3D/3E)
- mouse: 4800 8O1 RS-232, self-test via 'T' -> 4-byte report (errors 3D/3E, >=0x20 fatal)
- separate ports: DUART2 A=keyboard, B=mouse (NOT daisy-chained)
MAME already has an LK201 device (src/mame/dec/lk201.cpp/.h) but no DEC mouse.
2026-10-16 11:38:52 +03:00

178 lines
5.1 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>VaxArchive</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
<style type="text/css">
body {
padding-top: 20px;
padding-bottom: 40px;
}
/* Custom container */
.container-narrow {
margin: 0 auto;
max-width: 700px;
}
.container-narrow>hr {
margin: 30px 0;
}
/* Main marketing message and sign up button */
.jumbotron {
margin: 60px 0;
text-align: center;
}
.jumbotron h1 {
font-size: 72px;
line-height: 1;
}
.jumbotron .btn {
font-size: 21px;
padding: 14px 24px;
}
/* Supporting marketing content */
.marketing {
margin: 60px 0;
}
.marketing p+h4 {
margin-top: 28px;
}
</style>
<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="/js/html5shiv.js"></script>
<![endif]-->
<!-- Fav and touch icons -->
<!--<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../assets/ico/apple-touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../assets/ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../assets/ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="../assets/ico/apple-touch-icon-57-precomposed.png">
<link rel="shortcut icon" href="../assets/ico/favicon.png">-->
</head>
<body>
<div class="container-narrow">
<div class="masthead">
<h3 class="muted"><img src="../vaxarch.gif"/></h3>
<a href="https://github.com/teverett/vaxarchive"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://camo.githubusercontent.com/e7bbb0521b397edbd5fe43e7f760759336b5e05f/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f677265656e5f3030373230302e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_green_007200.png"></a>
</div>
<hr> <div class="row-fluid marketing">
<div class="span12">
<h3>The DEC round mouse VSXXX-AA</h3>
</div>
</div>
<pre>
Newsgroups: comp.sys.dec
Subject: Re: Ode to the DEC Round Mouse
Date: Mon, 12 Oct 1998 16:38:06 -0400
Organization: OpenVMS Engineering
Message-Id: <3622306E.6B4F7244@star.enet.dec_nospam.com>
[The mouse pin-out is...]
1 GND
2 TXD
3 RXD
4 -12v
5 +5v
6 Not Used
7 Device Present (shorted to pin 1)
Shell - protective ground
Power: +5v +/- 5% at < 150 mA
-8v to -13v at < 20 mA
Signals: RS-232 voltage-level-compatable
4800 baud, 1 stop bit. odd parity. parity ignored on incomming
data (it also ignores bit 7).
7-pin mico-DIN (male). Pin out (+ == connector key):
+
5 6 7
3 4
+1 2+
Commands:
R Select incremental stream mode
D Select prompt mode
P Request mouse position (also enters prompt mode)
T Self test, & identify
Z xx Reserved (test functions)
Data format:
7 6 5 4 3 2 1 0
-------------------------------------
1 0 0 sx sy L M R Byte 1
0 x6 x5 x4 x3 x2 x1 x0 Byte 2
0 y6 y5 y4 y3 y2 y1 y0 Byte 3
Bit 7, byte 1 - Phasing. Bit 7 always clear for byte 2 & 3
Byte DATA bits 5 & 6 always 0
sx, sy sign bits. 1= positive, 0 = negative
L, M, R - button bits, 1 = depressed
X6-X0 - X displacement
Y6-Y0 - Y displacement
Self test, and power up:
7 6 5 4 3 2 1 0
-------------------------------------
1 0 1 0 r3 r2 r1 r0 Byte 1
0 m2 m1 m0 0 0 1 0 Byte 2
0 e6 e5 e4 e3 e2 e1 e0 Byte 3
0 0 0 0 0 L M R Byte 4
Byte 1, bit 7 always set.
Byte 1 bit 6 always clear, bit 5 always set -- MOUSE connected.
R3-R0 - revision
M2-M0 - Maufacturer location code
E6-E0 - Error code
L, M, R - If byte 3 is "=" (0x3d) - button error, mask determines
which button), if byte 3 is > 0x20 other error, if byte 3 < 0x20
no error, LMR are current button state.
</pre>
<p>Thanks to Fred Kleinsorge <kleinsorge@star.enet.dec_nospam.com></p>
<hr>
<div class="footer">
</div>
</body>
</html>
</body>
</html>