KBD.DEF 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. (* Release 3.10 *)
  2. (*-------------------------------------------------------------------------*
  3. * *
  4. * KBD.DEF - Modula-2 OS/2 API Keyboard functions *
  5. * *
  6. * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. *
  7. * All Rights Reserved *
  8. * *
  9. *--------------------------------------------------------------------------*)
  10. (*# call(o_a_size => off,
  11. o_a_copy=>off,
  12. result_optional=>on,
  13. reg_saved => (bx, cx, dx, si, di, es, ds, st1, st2),
  14. reg_param => (),
  15. seg_name => none,
  16. same_ds => off,
  17. near_call => off,
  18. ds_eq_ss => off) *)
  19. (*# module(implementation=>off, init_code => off) *)
  20. (*# name(prefix => os2_lib) *)
  21. (*# data(near_ptr => off) *)
  22. DEFINITION MODULE Kbd;
  23. CONST
  24. IO_WAIT = 0; IO_NOWAIT = 1;
  25. TYPE
  26. HKBD = CARDINAL;
  27. KEYINFO = RECORD
  28. char : CHAR;
  29. scan : SHORTCARD;
  30. status : SHORTCARD;
  31. nlsShift : SHORTCARD;
  32. state : BITSET;
  33. time : LONGCARD;
  34. END;
  35. STRINGINBUF = RECORD
  36. b : CARDINAL;
  37. chIn : CARDINAL;
  38. END;
  39. KBDINFO = RECORD
  40. b : CARDINAL;
  41. mask : BITSET;
  42. turnAround : CARDINAL;
  43. interim : BITSET;
  44. state : BITSET;
  45. END;
  46. HWID = RECORD
  47. cb : CARDINAL; (* length in byte of the structure *)
  48. idKbd : CARDINAL; (* attached keyboard's hardware id *)
  49. Rsvd1 : CARDINAL; (* reserved (set to 0) *)
  50. Rsvd2 : CARDINAL; (* reserved (set to 0) *)
  51. END;
  52. KEYTRANS = RECORD
  53. key : KEYINFO;
  54. dd : BITSET;
  55. xlate : BITSET;
  56. shift : CARDINAL;
  57. zero : CARDINAL;
  58. END;
  59. PROCEDURE CharIn(VAR buffer:KEYINFO; iowait:CARDINAL; handle:HKBD) : CARDINAL;
  60. PROCEDURE Peek(VAR buffer:KEYINFO; handle:HKBD) : CARDINAL;
  61. PROCEDURE StringIn(VAR buffer:ARRAY OF CHAR; VAR bufflng:STRINGINBUF; iowait:CARDINAL; handle:HKBD) : CARDINAL;
  62. PROCEDURE FlushBuffer(handle:HKBD) : CARDINAL;
  63. PROCEDURE SetStatus(VAR structure:KBDINFO; handle:HKBD) : CARDINAL;
  64. PROCEDURE GetStatus(VAR structure:KBDINFO; handle:HKBD) : CARDINAL;
  65. PROCEDURE SetCp(rsrvd:CARDINAL; cpage:CARDINAL; handle:HKBD) : CARDINAL;
  66. PROCEDURE GetCp(rsrvd:LONGCARD; VAR cpage:CARDINAL; handle:HKBD) : CARDINAL;
  67. PROCEDURE Open(VAR handle:HKBD) : CARDINAL;
  68. PROCEDURE Close(handle:HKBD) : CARDINAL;
  69. PROCEDURE GetFocus(iowait:CARDINAL; handle:HKBD) : CARDINAL;
  70. PROCEDURE FreeFocus(handle:HKBD) : CARDINAL;
  71. PROCEDURE Synch(iowait:CARDINAL) : CARDINAL;
  72. PROCEDURE SetFgnd() : CARDINAL;
  73. PROCEDURE KbdGetHWID(VAR id:HWID; h:HKBD): CARDINAL;
  74. PROCEDURE Xlate(VAR xrec:KEYTRANS; handle:HKBD) : CARDINAL;
  75. PROCEDURE SetCustXt(VAR cpage:CARDINAL; handle:HKBD) : CARDINAL;
  76. TYPE KBDFUNC = (CHARIN,PEEK,FLUSHBUFFER,GETSTATUS,SETSTATUS,STRINGIN,
  77. OPEN,CLOSE,GETFOCUS,FREEFOCUS,GETCP,SETCP,XLATE,SETCUSTXT,
  78. _14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,
  79. _28,_29,_30,_31);
  80. KBDFUNCSET = SET OF KBDFUNC ;
  81. PROCEDURE Register(name,entry:ARRAY OF CHAR; mask:KBDFUNCSET) : CARDINAL;
  82. PROCEDURE DeRegister() : CARDINAL;
  83. END Kbd.
  84.