Provided by: allegro4-doc_4.4.2-10_all bug

NAME

       readkey  -  Returns  the next character from the keyboard buffer. Allegro game programming
       library.

SYNOPSIS

       #include <allegro.h>

       int readkey();

DESCRIPTION

       Returns the next character from the keyboard buffer, in ASCII format.  If  the  buffer  is
       empty,  it  waits  until a key is pressed. You can see if there are queued keypresses with
       keypressed().

       The low byte of the return value contains the ASCII code of the key, and the high byte the
       scancode.  The  scancode  remains  the  same whatever the state of the shift, ctrl and alt
       keys, while the ASCII code is affected by shift and ctrl in the normal way (shift  changes
       case,  ctrl+letter  gives  the  position  of  that letter in the alphabet, eg. ctrl+A = 1,
       ctrl+B = 2, etc). Pressing alt+key returns only the scancode, with a zero  ASCII  code  in
       the low byte. For example:

          int val;
          ...
          val = readkey();
          if ((val & 0xff) == 'd')     /* by ASCII code */
             allegro_message("You pressed 'd'\n");

          if ((val >> 8) == KEY_SPACE) /* by scancode */
             allegro_message("You pressed Space\n");

          if ((val & 0xff) == 3)       /* ctrl+letter */
             allegro_message("You pressed Control+C\n");

          if (val == (KEY_X << 8))     /* alt+letter */
             allegro_message("You pressed Alt+X\n");

       This function cannot return character values greater than 255. If you need to read Unicode
       input, use ureadkey() instead.

SEE ALSO

       install_keyboard(3alleg4), ureadkey(3alleg4), keypressed(3alleg4),  clear_keybuf(3alleg4),
       simulate_keypress(3alleg4)