Introduction
The PS2Driver module provides support for PS 2 mice and keyboards as documented within PRM 5a-229. The driver has been extended to support the 'scroll wheel' and '5 button' mice commonly in use. This extension is documented within the Pointer devices document.
Technical Details
Additional keys
From RISC OS 4, a number of additional keys have been returned by the PS 2 Driver (and other keyboard drivers). The following keys are now provided through the internal interfaces :
| Key | Low level key | Internal and HID values |
|---|---|---|
| Windows left | &68 | Internal (decimal) 125; HID &700E4 |
| Windows right | &69 | Internal (decimal) 126; HID &700E7 |
| Menu | &6A | Internal (decimal) 127; HID &70065 |
| No convert | &6B | Internal (decimal) 109; HID &7008B |
| Convert | &6C | Internal (decimal) 110; HID &7008A |
| Kana | &6D | Internal (decimal) 111; HID &70088 |
| Yen/Bar | &1D | Internal (decimal) 46; HID &70089 |
| \ _ | &6E | Internal (decimal) 95; HID &70087 |
The following keys have HID values only:
| Key | HID |
|---|---|
| ASPI Power | &10081 |
| ASPI Sleep | &10082 |
| ASPI Wake | &10083 |
| Scan next track | &C00B5 |
| Scan previous track | &C00B6 |
| Stop | &C00B7 |
| Play/pause | &C00CD |
| Mute | &C00E2 |
| Vol+ | &C00E9 |
| Vol- | &C00EA |
| Media select | &C0183 |
| &C018A | |
| Calculator | &C0192 |
| My computer | &C0194 |
| Browser search | &C0221 |
| Browser home | &C0223 |
| Browser back | &C0224 |
| Browser forward | &C0225 |
| Browser stop | &C0226 |
| Browser refresh | &C0227 |
| Browser favourites | &C0228 |
The Yen/Bar key is to the left of backspace (ie where the £ sign was on Archimedes keyboards). It hence resurrects the old &1D low level code.
The \ _ key is to the left of the right shift key (analogous to the \ | key on UK keyboards).
HID values can be used through the KeyInput interfaces. Multimedia keys have not been exposed to the regular keyboard interfaces, for example, the wimp key processing.
Within the desktop environment, the following key codes will be returned for the additional keys :
| Key | Key code | Shifted key codes |
|---|---|---|
| Windows left | &1C0 | Shift &1D0, Ctrl &1E0, Shift-Ctrl &1F0 |
| Windows right | &1D0 | Shift &1C0, Ctrl &1F0, Shift-Ctrl &1E0 |
| Menu | &1C1 | Shift &1D1, Ctrl &1E1, Shift-Ctrl &1F1 |
| No convert | &1C2 | Shift &1D2, Ctrl &1E2, Shift-Ctrl &1F2 |
| Convert | &1C3 | Shift &1D3, Ctrl &1E3, Shift-Ctrl &1F3 |
| Kana | &1C4 | Shift &1D4, Ctrl &1E4, Shift-Ctrl &1F4 |
FIXME: The codes for the right Windows key duplicate the Shift- and Ctrl- variants of the left Windows key; these values need to be confirmed.
'Windows' and 'Menu' keys
In order to be consistent, the Windows and Menu keys should operate in the following manner :
| Key | Domain | Effect |
|---|---|---|
| Windows-alone | OS-specific | Display a system menu [1] |
| Windows-Shift/Ctrl | OS-specific | Reserved |
| Windows-0-9 | Hardware | Reserved |
| Windows-<nonshift> | User | User expansion |
| Menu-alone | OS-specific | Display a context menu [1] |
| Menu-Shift/Ctrl | Application | Application expansion |
| Menu-<nonshift> | Reserved | Reserved |
[1] Not presently implemented
Left and right Windows keys should be treated identically, but may be distinguished by user-expansion software where necessary. This behaviour is consistent with the recommended behaviour on other systems and should ensure that the users expectations are met when transferring between environments.