[[Image:CPC mousepack 5.jpg|thumb|The mouse that came with the CPC mousepack]]
A mouse for the Amstrad CPC. The CPC mousepack was manufactured distributed by the German company [[Reisware]] .The mouse itself is an MSX mouse, which was sold by different companies like Sony and a similiar product to Philips for the more known one from the British company [[Advanced Memory Systems]] the [[AMX Mouse]]MSX computers: https://www.msx.org/wiki/Sony_MOS-1
Mousepack came with software. But nothing else is known about this product. Please supply!
== Technical ==
Unknown how to The mouse/interface includes two buttons (0=pressed), and two signed 8bit motion counters (distance since last access : positive=up/left, negative=right/down). The buttons can be read via the mouse by softwarenormal BIOS keyboard scanning routines, the motion counters requires custom ASM code that reads & combines four 4bit fragments into two 8bit values (to be done once per frame).
The Centaur screenshot Joystick 1 Read (see belowkeyboard row 9) claims that using the program with "any other mouse will cause malfunction" : Bit0- if that's true3 Motion Counter (4bit fragment) (requires four reads to get the two signed 8bit values) Bit4 Left Mouse Button (aka Joystick Fire 2) (0=Pressed) Bit5 Right Mouse Button (aka Joystick Fire 1) (0=Pressed) Bit6 Unknown/Unused (aka Joystick Fire 3) (old CPC only, then not CPC+) Bit7 Keyboard DEL key Joystick 2 Read (keyboard row 6): Bit0-7 Keyboard keys (dummy read from row 6 is done... to request/acknowledge something...?) As it is an MSX mouse you can find information how to read the mouse movements on an MSX here: https://www.msx.org/wiki/Mouse/Trackball#Direct_usage_of_mouse Now it's apparently not maybe possible to understanding the following (old text of this article) in a better way:... The exact mechanism that defines when the hardware does output the next 4bit fragment is unknown. The software does manipulate row 9 & row 6 signals, which does somehow request and/or acknowledge the fragments. Looking at the [[AMX MouseMedia:CPC Mousepack 2.0 disassembly.txt|disassembled software]] compatible, the hardware seems to work like so (not confirmed): switch from row0 to row9 --> invoke reading X counter (after 200 clks: MSB, after another 200 clks: LSB) switch from row9 to row6 --> terminate X read switch from row6 to row9 --> invoke reading Y counter (after 66 clks: MSB, after another 280 clks: LSB) switch from row9 to row6 --> terminate Y read switch from row6 to row0 --> terminate allWhereas, one of the "terminate" actions does apparently reset the motion counter(s) to zero. Instead of "row0" one could use any other non-joystick row (ie. anything else than row6,row9). The "invoke" actions do request the MSB, which is then automatically followed (without another request) by the LSB after some hundred clock cycles.
== Pictures ==
Image:Mauspack 2 2.jpg|
File:NoPicture.gif|Inside of Interface
</gallery>
<gallery caption="CPC Mousepack">
Mousepack-box.jpg|The box
Mousepack-contents.jpg|Box open
</gallery>
* [[Media:CPC MousePack 2.0.zip]] - driver disk with sample tools
[[Category:HardwareInput Device]] [[Category:Peripherals]]