The following is an exhaustive list of the RISC OS internal keycodes. The codes go
back to the BBC micro, and have remained compatible. Some keys (such as "Keypad ," and
"Shift Lock") no longer exist, so these keycodes are candidates for reassignment. No
such reassignments have yet taken place though.

Internal key codes should reference the physical position of keys, not the
labels. The definitions below are in terms of the standard UK PC layout
labels.

Note that the change in key arrangement from the BBC micro to the Archimedes
resulted in four keys merging with other keys (@, :, ^, _). For example, "@"
was a separate key on the BBC micro, but became Shift+2 on the Archimedes.
This means that the 2 key produces both the "2" code and the "@" code. This
is still true, even though "@" has maved on again. These keys are marked
{compatibility} with the key that produces that code. These codes are
secondary reassignment candidates.

Note that the RISC OS API treats codes 0-15 slightly differently, so be wary
of assigning keys 12-15.

Code        Key                     First used
---------------------------------------------------------------
  0 Shift                           BBC
  1 Ctrl                            BBC
  2 Alt                             Archimedes
  3 Left Shift                      Archimedes
  4 Left Ctrl                       Archimedes
  5 Left Alt                        Archimedes
  6 Right Shift                     Archimedes
  7 Right Ctrl                      Archimedes
  8 Right Alt                       Archimedes
  9 Select mouse button             Archimedes
 10 Menu mouse button               Archimedes
 11 Adjust mouse button             Archimedes
 12 FN                              Internet Access Card
 13 <unassigned>
 14 <unassigned>
 15 <unassigned>
 16 Q                               BBC
 17 3                               BBC
 18 4                               BBC
 19 5                               BBC
 20 F4                              BBC
 21 8                               BBC
 22 F7                              BBC
 23 _  {compatibility: -}           BBC
 24 ^  {compatibility: 6}           BBC
 25 Left cursor key                 BBC
 26 Keypad 6                        Master
 27 Keypad 7                        Master
 28 F11                             Archimedes
 29 F12                             Archimedes
 30 F10                             Archimedes
 31 Scroll Lock                     Archimedes
 32 Print/F0                        BBC
 33 W                               BBC
 34 E                               BBC
 35 T                               BBC
 36 7                               BBC
 37 I                               BBC
 38 9                               BBC
 39 0                               BBC
 40 -                               BBC
 41 Down cursor key                 BBC
 42 Keypad 8                        Master
 43 Keypad 9                        Master
 44 Break                           Archimedes
 45 `                               Archimedes
 46 Key to left of Backspace (£)    Archimedes
 47 Backspace                       Archimedes
 48 1                               BBC
 49 2                               BBC
 50 D                               BBC
 51 R                               BBC
 52 6                               BBC
 53 U                               BBC
 54 O                               BBC
 55 P                               BBC
 56 [                               BBC
 57 Up cursor key                   BBC
 58 Keypad +                        Master
 59 Keypad -                        Master
 60 Keypad Enter                    Master
 61 Insert                          Archimedes
 62 Home                            Archimedes
 63 Page Up                         Archimedes
 64 Caps Lock                       BBC
 65 A                               BBC
 66 X                               BBC
 67 F                               BBC
 68 Y                               BBC
 69 J                               BBC
 70 K                               BBC
 71 @ {compatibility: 2}            BBC
 72 : {compatibility: ;}            BBC
 73 Enter                           BBC
 74 Keypad /                        Master
 75 Keypad Delete                   Master
 76 Keypad .                        Master
 77 Num Lock                        Archimedes
 78 Page Down                       Archimedes
 79 '                               Archimedes
 80 Shift Lock                      BBC
 81 S                               BBC
 82 C                               BBC
 83 G                               BBC
 84 H                               BBC
 85 N                               BBC
 86 L                               BBC
 87 ;                               BBC
 88 ]                               BBC
 89 Delete                          BBC
 90 Keypad #                        Master
 91 Keypad *                        Master
 92 Keypad ,                        Master
 93 =                               Archimedes
 94 \ (Key to right of Left Shift)  Archimedes
 95 Key to left of Right Shift      Japanese NC OS
 96 Tab                             BBC
 97 Z                               BBC
 98 Space                           BBC
 99 V                               BBC
100 B                               BBC
101 M                               BBC
102 ,                               BBC
103 .                               BBC
104 /                               BBC
105 Copy/End                        BBC
106 Keypad 0                        Master
107 Keypad 1                        Master
108 Keypad 3                        Master
109 No Conversion (Key to left of Space)     Japanese NC OS
110 Convert (Key to right of Space)          Japanese NC OS
111 Kana (Key between Convert and Right Alt) Japanese NC OS
112 Escape                          BBC
113 F1                              BBC
114 F2                              BBC
115 F3                              BBC
116 F5                              BBC
117 F6                              BBC
118 F8                              BBC
119 F9                              BBC
120 \ (US) or # (UK)                BBC
121 Right cursor key                BBC
122 Keypad 4                        Master
123 Keypad 5                        Master
124 Keypad 2                        Master
125 Left Acorn/Windows              Ursula
126 Right Acorn/Windows             Ursula
127 Menu                            Ursula
