forked from KolibriOS/kolibrios
bf523330da
git-svn-id: svn://kolibrios.org@5693 a494cfbc-eb01-0410-851d-a64ba20cac60
82 lines
3.1 KiB
PHP
82 lines
3.1 KiB
PHP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; ;;
|
|
;; Copyright (C) KolibriOS team 2010-2015. All rights reserved. ;;
|
|
;; Distributed under terms of the GNU General Public License ;;
|
|
;; ;;
|
|
;; VNC client for KolibriOS ;;
|
|
;; ;;
|
|
;; Written by hidnplayr@kolibrios.org ;;
|
|
;; ;;
|
|
;; GNU GENERAL PUBLIC LICENSE ;;
|
|
;; Version 2, June 1991 ;;
|
|
;; ;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
generate_keymap:
|
|
|
|
; Read keymaps from kernel
|
|
mcall 26, 2, 1, keymap+128
|
|
mcall 26, 2, 2, keymap_shift+128
|
|
mcall 26, 2, 3, keymap_alt+128
|
|
|
|
mov edi, keymap
|
|
call convert_keymap
|
|
|
|
mov edi, keymap_shift
|
|
call convert_keymap
|
|
|
|
mov edi, keymap_alt
|
|
call convert_keymap
|
|
|
|
ret
|
|
|
|
|
|
|
|
convert_keymap:
|
|
|
|
push edi
|
|
lea esi, [edi+128]
|
|
mov ecx, 128
|
|
xor eax, eax
|
|
.loop:
|
|
lodsb
|
|
shl ax, 8
|
|
stosw
|
|
dec ecx
|
|
jnz .loop
|
|
pop edi
|
|
|
|
; Fill in some keysyms for non-ascii keys
|
|
mov word[edi+01*2], 0x1bff ; Escape
|
|
mov word[edi+14*2], 0x08ff ; Backspace
|
|
mov word[edi+15*2], 0x09ff ; Tab
|
|
mov word[edi+28*2], 0x0dff ; Enter
|
|
mov word[edi+29*2], 0xe3ff ; Left control key
|
|
mov word[edi+42*2], 0xe1ff ; Left shift
|
|
mov word[edi+54*2], 0xe2ff ; Right shift
|
|
mov word[edi+56*2], 0xe9ff ; Left alt key
|
|
mov word[edi+59*2], 0xbeff ; f1
|
|
mov word[edi+60*2], 0xbfff ; f2
|
|
mov word[edi+61*2], 0xc0ff ; f3
|
|
mov word[edi+62*2], 0xc1ff ; f4
|
|
mov word[edi+63*2], 0xc2ff ; f5
|
|
mov word[edi+64*2], 0xc3ff ; f6
|
|
mov word[edi+65*2], 0xc4ff ; f7
|
|
mov word[edi+66*2], 0xc5ff ; f8
|
|
mov word[edi+67*2], 0xc6ff ; f9
|
|
mov word[edi+68*2], 0xc7ff ; f10
|
|
mov word[edi+71*2], 0x50ff ; home
|
|
mov word[edi+72*2], 0x52ff ; up
|
|
mov word[edi+73*2], 0x55ff ; pg up
|
|
mov word[edi+75*2], 0x51ff ; left
|
|
mov word[edi+77*2], 0x53ff ; right
|
|
mov word[edi+79*2], 0x57ff ; end
|
|
mov word[edi+80*2], 0x54ff ; down
|
|
mov word[edi+81*2], 0x56ff ; pg down
|
|
mov word[edi+82*2], 0x63ff ; insert
|
|
mov word[edi+83*2], 0xffff ; delete
|
|
mov word[edi+87*2], 0xc8ff ; f11
|
|
mov word[edi+88*2], 0xc9ff ; f12
|
|
mov word[edi+91*2], 0xebff ; left super
|
|
|
|
ret |