(*
 * Title: akbd.h
 * Purpose: Access to keyboard under the Wimp.
 *
 *)

(* Standard key codes produced by Wimp, for special keys. *)

#ifndef __akbd_h
#define __akbd_h

const   akbd_Fn = (256 + 128);
        akbd_Sh = (16);
        akbd_Ctl = (32);
        akbd_TabK = (akbd_Fn + 10);
        akbd_CopyK = (akbd_Fn + 11);
        akbd_LeftK = (akbd_Fn + 12);
        akbd_RightK = (akbd_Fn + 13);
        akbd_DownK = (akbd_Fn + 14);
        akbd_UpK = (akbd_Fn + 15);
        akbd_Fn10 = ($1CA);
        akbd_Fn11 = ($1CB);
        akbd_Fn12 = ($1CC);
        akbd_InsertK = ($1CD);
        akbd_PrintK = (akbd_Fn+0);
        akbd_PageUpK = (akbd_Sh+akbd_UpK);
        akbd_PageDownK = (akbd_Sh+akbd_DownK);

(* ----------------------------- akbd_pollsh ----------------------------
 * Description:  Checks if SHIFT key is depressed.
 *               
 * Parameters:   none
 * Returns:      True if SHIFT depressed, False otherwise.
 * Other Info:   none.
 *)
function akbd_pollsh : boolean; extern;


(* ---------------------------- akbd_pollctl ----------------------------
 * Description:   Checks if CTRL key is depressed.
 *
 * Parameters:    none
 * Returns:       True if CTRL key depressed, False otherwise.
 * Other Info:    none.
 *)
function akbd_pollctl : boolean; extern;


(* --------------------------- akbd_pollkey -----------------------------
 * Description:   Checks if user has typed ahead.
 *
 * Parameters:    int *keycode -- value of key pressed
 * Returns:       True if user has typed ahead
 *                Also passes value of key back through keycode.
 * Other Info:    Function keys appear as values > 256 (produced by wimp)
 *                See #defines above, for such values.
 *)
procedure akbd_pollkey(var keycode : integer) : boolean; extern;

#endif


(* end akbd.h *)
