summaryrefslogtreecommitdiffstats
path: root/private/os2/client/thunk/include/vkd.inc
diff options
context:
space:
mode:
Diffstat (limited to 'private/os2/client/thunk/include/vkd.inc')
-rw-r--r--private/os2/client/thunk/include/vkd.inc172
1 files changed, 172 insertions, 0 deletions
diff --git a/private/os2/client/thunk/include/vkd.inc b/private/os2/client/thunk/include/vkd.inc
new file mode 100644
index 000000000..a44f024cb
--- /dev/null
+++ b/private/os2/client/thunk/include/vkd.inc
@@ -0,0 +1,172 @@
+;******************************************************************************
+;
+; (C) Copyright MICROSOFT Corp., 1988-1990
+;
+; Title: vkd.inc -
+;
+; Version: 1.00
+;
+; Date: 10-Aug-1988
+;
+; Author: RAP
+;
+;------------------------------------------------------------------------------
+;
+; Change log:
+;
+; DATE REV DESCRIPTION
+; ----------- --- -----------------------------------------------------------
+; 10-Aug-1988 RAP started re-write of VKD
+; 03-Nov-1988 RAP separated internal stuff out into VKDSYS.INC
+;
+;==============================================================================
+
+
+Begin_Service_Table VKD
+
+VKD_Service VKD_Get_Version, LOCAL
+VKD_Service VKD_Define_Hot_Key, LOCAL
+VKD_Service VKD_Remove_Hot_Key, LOCAL
+VKD_Service VKD_Local_Enable_Hot_Key, LOCAL
+VKD_Service VKD_Local_Disable_Hot_Key, LOCAL
+VKD_Service VKD_Reflect_Hot_Key, LOCAL
+VKD_Service VKD_Cancel_Hot_Key_State, LOCAL
+VKD_Service VKD_Force_Keys, LOCAL
+VKD_Service VKD_Get_Kbd_Owner, LOCAL
+VKD_Service VKD_Define_Paste_Mode, LOCAL
+VKD_Service VKD_Start_Paste, LOCAL
+VKD_Service VKD_Cancel_Paste, LOCAL
+VKD_Service VKD_Get_Msg_Key, LOCAL
+VKD_Service VKD_Peek_Msg_Key, LOCAL
+VKD_Service VKD_Flush_Msg_Key_Queue, LOCAL
+
+End_Service_Table VKD
+
+
+VKD_Version equ 200h
+
+
+;******************************************************************************
+;
+; shift state bits for both global & local shift states
+;
+ ;;5432109876543210
+SS_Shift equ 0000000000000001b ; left or right
+SS_LShift equ 0000000000000010b
+SS_RShift equ 0000001000000000b
+SS_Ctrl equ 0000000010000000b ; left or right
+SS_LCtrl equ 0000000000000100b
+SS_RCtrl equ 0000010000000000b
+SS_Alt equ 0000000100000000b ; left or right
+SS_LAlt equ 0000000000001000b
+SS_RAlt equ 0000100000000000b
+SS_CapLock equ 0000000001000000b
+SS_NumLock equ 0000000000100000b
+SS_ScrlLock equ 0000000000010000b
+SS_CapLock_Dn equ 0100000000000000b ; SS_CapLock shl 8
+SS_NumLock_Dn equ 0010000000000000b ; SS_NumLock shl 8
+SS_ScrlLock_Dn equ 0001000000000000b ; SS_ScrlLock shl 8
+SS_Unused equ 1000000000000000b
+
+SS_Toggle_mask equ SS_CapLock + SS_NumLock + SS_ScrlLock
+SS_Toggle_Dn_mask equ SS_CapLock_Dn + SS_NumLock_Dn + SS_ScrlLock_Dn
+SS_LShift_mask equ SS_LShift + SS_LCtrl + SS_LAlt
+SS_Shift_mask equ SS_LShift_mask + SS_RShift + SS_RCtrl + SS_RAlt
+
+SS_Either_Shift equ SS_LShift + SS_RShift
+SS_Either_Ctrl equ SS_LCtrl + SS_RCtrl
+SS_Either_Alt equ SS_LAlt + SS_RAlt
+
+
+; LED state bits
+LED_ScLok equ 1 ; Scroll Lock
+LED_NmLok equ 2 ; Num Lock
+LED_CpLok equ 4 ; Caps Lock
+Toggle_To_LED equ 4 ; "state shr Toggle_To_LED" converts
+ ; state bits into kybd LED bits
+
+
+; VKD_Define_Hot_Key equates & macro
+
+ExtendedKey_B equ 1
+ExtendedKey equ 100h
+AllowExtended_B equ 0FFh
+AllowExtended equ 0FF00h
+
+
+;VKD_Define_Hot_Key flags:
+
+CallOnPress equ 1 ; Call call-back when key press is detected
+CallOnRelease equ 2 ; Call call-back when key release is detected
+ ; (keyboard may still be in hot-key hold state)
+CallOnRepeat equ 4 ; Call call-back when repeated press is detected
+CallOnComplete equ 8 ; Call call-back when the hot key state is
+ ; ended (all shift modifier keys are released)
+ ; or when a different hot key is entered
+ ; (i.e. pressing ALT 1 2, if both ALT-1
+ ; and ALT-2 are defined hot keys, then ALT-1's
+ ; call back will be called before ALT-2's to
+ ; indicate that the ALT-1 is complete even
+ ; though the ALT key is still down)
+CallOnUpDwn equ CallOnPress + CallOnRelease
+ ; Call call-back on both press and release
+CallOnAll equ 0 ; Call call-back on press, release, auto-repeat
+ ; and complete
+PriorityNotify equ 10h ; notification calls to the call-back can only
+ ; happen when interrupts are enabled and
+ ; the critical section is un-owned
+Local_Key equ 80h ; key can be locally enabled/disabled
+
+Hot_Key_Pressed equ 0
+Hot_Key_Released equ 1
+Hot_Key_Repeated equ 2
+Hot_Key_Completed equ 3
+
+Hot_Key_SysVM_Notify equ 80h
+Hot_Key_SysVM_Notify_bit equ 7
+
+BeginDoc
+;******************************************************************************
+;
+; ShiftState
+;
+; DESCRIPTION: Macro to aid in setting EBX with the shift state mask and
+; shift state compare value for calling VKD_Define_Hot_Key.
+;
+; USAGE: ShiftState mask, compare
+;
+; The mask specifies the shift state bits that should be
+; excluded before the compare is done.
+;
+;==============================================================================
+EndDoc
+ShiftState MACRO mask, compare
+ mov ebx, ((NOT mask) SHL 16) + compare
+ ENDM
+
+; common shift states
+
+HKSS_Shift equ (NOT (SS_Either_Shift + SS_Toggle_mask)) SHL 16 + SS_Shift
+HKSS_Ctrl equ (NOT (SS_Either_Ctrl + SS_Toggle_mask)) SHL 16 + SS_Ctrl
+HKSS_Alt equ (NOT (SS_Either_Alt + SS_Toggle_mask)) SHL 16 + SS_Alt
+
+
+; include structure of entries in paste buffer
+
+include VKDpaste.INC
+
+
+; paste completion flags passed to the paste call-back
+
+Paste_Complete equ 0 ; paste successful
+Paste_Aborted equ 1 ; paste aborted by user
+Paste_VM_Term equ 2 ; paste aborted because VM terminated
+
+;
+; Modifier byte for Message Keys, retrieved with services VKD_Get_Msg_Key and
+; VKD_Peek_Msg_Key
+;
+MK_Shift equ 00000010b
+MK_Ctrl equ 00000100b
+MK_Alt equ 00001000b
+MK_Extended equ 10000000b