(* Release 3.10 *) (*-------------------------------------------------------------------------* * * * KBD.DEF - Modula-2 OS/2 API Keyboard functions * * * * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. * * All Rights Reserved * * * *--------------------------------------------------------------------------*) (*# call(o_a_size => off, o_a_copy=>off, result_optional=>on, reg_saved => (bx, cx, dx, si, di, es, ds, st1, st2), reg_param => (), seg_name => none, same_ds => off, near_call => off, ds_eq_ss => off) *) (*# module(implementation=>off, init_code => off) *) (*# name(prefix => os2_lib) *) (*# data(near_ptr => off) *) DEFINITION MODULE Kbd; CONST IO_WAIT = 0; IO_NOWAIT = 1; TYPE HKBD = CARDINAL; KEYINFO = RECORD char : CHAR; scan : SHORTCARD; status : SHORTCARD; nlsShift : SHORTCARD; state : BITSET; time : LONGCARD; END; STRINGINBUF = RECORD b : CARDINAL; chIn : CARDINAL; END; KBDINFO = RECORD b : CARDINAL; mask : BITSET; turnAround : CARDINAL; interim : BITSET; state : BITSET; END; HWID = RECORD cb : CARDINAL; (* length in byte of the structure *) idKbd : CARDINAL; (* attached keyboard's hardware id *) Rsvd1 : CARDINAL; (* reserved (set to 0) *) Rsvd2 : CARDINAL; (* reserved (set to 0) *) END; KEYTRANS = RECORD key : KEYINFO; dd : BITSET; xlate : BITSET; shift : CARDINAL; zero : CARDINAL; END; PROCEDURE CharIn(VAR buffer:KEYINFO; iowait:CARDINAL; handle:HKBD) : CARDINAL; PROCEDURE Peek(VAR buffer:KEYINFO; handle:HKBD) : CARDINAL; PROCEDURE StringIn(VAR buffer:ARRAY OF CHAR; VAR bufflng:STRINGINBUF; iowait:CARDINAL; handle:HKBD) : CARDINAL; PROCEDURE FlushBuffer(handle:HKBD) : CARDINAL; PROCEDURE SetStatus(VAR structure:KBDINFO; handle:HKBD) : CARDINAL; PROCEDURE GetStatus(VAR structure:KBDINFO; handle:HKBD) : CARDINAL; PROCEDURE SetCp(rsrvd:CARDINAL; cpage:CARDINAL; handle:HKBD) : CARDINAL; PROCEDURE GetCp(rsrvd:LONGCARD; VAR cpage:CARDINAL; handle:HKBD) : CARDINAL; PROCEDURE Open(VAR handle:HKBD) : CARDINAL; PROCEDURE Close(handle:HKBD) : CARDINAL; PROCEDURE GetFocus(iowait:CARDINAL; handle:HKBD) : CARDINAL; PROCEDURE FreeFocus(handle:HKBD) : CARDINAL; PROCEDURE Synch(iowait:CARDINAL) : CARDINAL; PROCEDURE SetFgnd() : CARDINAL; PROCEDURE KbdGetHWID(VAR id:HWID; h:HKBD): CARDINAL; PROCEDURE Xlate(VAR xrec:KEYTRANS; handle:HKBD) : CARDINAL; PROCEDURE SetCustXt(VAR cpage:CARDINAL; handle:HKBD) : CARDINAL; TYPE KBDFUNC = (CHARIN,PEEK,FLUSHBUFFER,GETSTATUS,SETSTATUS,STRINGIN, OPEN,CLOSE,GETFOCUS,FREEFOCUS,GETCP,SETCP,XLATE,SETCUSTXT, _14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27, _28,_29,_30,_31); KBDFUNCSET = SET OF KBDFUNC ; PROCEDURE Register(name,entry:ARRAY OF CHAR; mask:KBDFUNCSET) : CARDINAL; PROCEDURE DeRegister() : CARDINAL; END Kbd.