;******************************************************************************
;
; (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
Detected encoding: ASCII (7 bit) | 2
|