[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]

If you select any of these events you will start to get information about
the events in the following form:

<CSI><class>;<subclass>;<keycode>;<qualifiers>;<x>;<y>;<secs>;<microsecs>|

<CSI>
   is a one-byte field.  It is the "control sequence introducer," 0x9B
   in hex.

<class>
   is the RAW input event type, from the above table.

<subclass>
   is usually 0. If the mouse is moved to the right controller, this
   would be 1.

<keycode>
   indicates which raw key number was pressed. This field can also be
   used for mouse information.

   The Raw Key Might Be The Wrong Key.
   -----------------------------------
   National keyboards often have different keyboard arrangements. This
   means that a particular raw key number may represent different
   characters on different national keyboards. The normal console read
   stream (as opposed to raw events) will contain the proper ASCII
   character for the keypress as translated according to the user's
   keymap.

<qualifiers>
   indicates the state of the keyboard and system.

The qualifiers are defined as follows:

                         INPUT EVENT QUALIFIERS

   Bit  Mask   Key
   ---  ----   ---
    0   0001   Left shift
    1   0002   Right shift
    2   0004   Caps Lock Associated keycode is special; see below.
    3   0008   Ctrl
    4   0010   Left Alt
    5   0020   Right Alt
    6   0040   Left Amiga key pressed
    7   0080   Right Amiga key pressed
    8   0100   Numeric pad
    9   0200   Repeat
    10  0400   Interrupt Not currently used.
    11  0800   Multibroadcast This window (active one) or all windows.
    12  1000   Middle mouse button (Not available on standard mouse)
    13  2000   Right mouse button
    14  4000   Left mouse button
    15  8000   Relative mouse Mouse coordinates are relative, not absolute.

The Caps Lock key is handled in a special manner. It generates a keycode
only when it is pressed, not when it is released. However, the up/down bit
(80 hex) is still used and reported. If pressing the Caps Lock key causes
the LED to light, keycode 62 (Caps Lock pressed) is sent. If pressing the
Caps Lock key extinguishes the LED, keycode 190 (Caps Lock released) is
sent. In effect, the keyboard reports this key as held down until it is
struck again.

The <x> and <y> fields are filled by some classes with an Intuition
address:  x<<16+y.

The <seconds> and <microseconds> fields contain the system time stamp
taken at the time the event occurred.  These values are stored as
longwords by the system.

With RAW keyboard input selected, keys will no longer return a simple
one-character "A" to "Z" but will instead return raw keycode reports
of the form:

  <CSI>1;0;<keycode>;<qualifiers>;<prev1>;<prev2>;<seconds>;<microseconds>|

For example, if the user pressed and released the A key with the left
Shift and right Amiga keys also pressed, you might receive the following
data:

  <CSI>1;0;32;32769;14593;5889;421939940;316673|

  <CSI>1;0;160;32769;0;0;421939991;816683|

The <keycode> field is an ASCII decimal value representing the key pressed
or released.  Adding 128 to the pressed key code will result in the
released keycode.

The <prev1> and <prev2> fields are relevant for the interpretation of keys
which are modifiable by dead-keys (see "Dead-Class Keys" section). The
<prev1> field shows the previous key pressed.  The lower byte shows the
qualifier, the upper byte shows the key code. The <prev2> field shows the
key pressed before the previous key.  The lower byte shows the qualifier,
the upper byte shows the key code.


[Back to Amiga Developer Docs]