Rev 5677 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
5677 | hidnplayr | 1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2 | ;; ;; |
||
3 | ;; Copyright (C) KolibriOS team 2010-2015. All rights reserved. ;; |
||
4 | ;; Distributed under terms of the GNU General Public License ;; |
||
5 | ;; ;; |
||
6 | ;; VNC client for KolibriOS ;; |
||
7 | ;; ;; |
||
8 | ;; Written by hidnplayr@kolibrios.org ;; |
||
9 | ;; ;; |
||
10 | ;; GNU GENERAL PUBLIC LICENSE ;; |
||
11 | ;; Version 2, June 1991 ;; |
||
12 | ;; ;; |
||
13 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
||
14 | |||
15 | generate_keymap: |
||
16 | |||
17 | ; Read keymaps from kernel |
||
18 | mcall 26, 2, 1, keymap+128 |
||
19 | mcall 26, 2, 2, keymap_shift+128 |
||
20 | mcall 26, 2, 3, keymap_alt+128 |
||
21 | |||
22 | mov edi, keymap |
||
23 | call convert_keymap |
||
24 | |||
25 | mov edi, keymap_shift |
||
26 | call convert_keymap |
||
27 | |||
28 | mov edi, keymap_alt |
||
29 | call convert_keymap |
||
30 | |||
31 | ret |
||
32 | |||
33 | |||
34 | |||
35 | convert_keymap: |
||
5693 | hidnplayr | 36 | |
37 | push edi |
||
38 | lea esi, [edi+128] |
||
39 | mov ecx, 128 |
||
40 | xor eax, eax |
||
5677 | hidnplayr | 41 | .loop: |
42 | lodsb |
||
43 | shl ax, 8 |
||
44 | stosw |
||
45 | dec ecx |
||
46 | jnz .loop |
||
5693 | hidnplayr | 47 | pop edi |
48 | |||
49 | ; Fill in some keysyms for non-ascii keys |
||
50 | mov word[edi+01*2], 0x1bff ; Escape |
||
51 | mov word[edi+14*2], 0x08ff ; Backspace |
||
52 | mov word[edi+15*2], 0x09ff ; Tab |
||
53 | mov word[edi+28*2], 0x0dff ; Enter |
||
54 | mov word[edi+29*2], 0xe3ff ; Left control key |
||
55 | mov word[edi+42*2], 0xe1ff ; Left shift |
||
56 | mov word[edi+54*2], 0xe2ff ; Right shift |
||
57 | mov word[edi+56*2], 0xe9ff ; Left alt key |
||
58 | mov word[edi+59*2], 0xbeff ; f1 |
||
59 | mov word[edi+60*2], 0xbfff ; f2 |
||
60 | mov word[edi+61*2], 0xc0ff ; f3 |
||
61 | mov word[edi+62*2], 0xc1ff ; f4 |
||
62 | mov word[edi+63*2], 0xc2ff ; f5 |
||
63 | mov word[edi+64*2], 0xc3ff ; f6 |
||
64 | mov word[edi+65*2], 0xc4ff ; f7 |
||
65 | mov word[edi+66*2], 0xc5ff ; f8 |
||
66 | mov word[edi+67*2], 0xc6ff ; f9 |
||
67 | mov word[edi+68*2], 0xc7ff ; f10 |
||
68 | mov word[edi+71*2], 0x50ff ; home |
||
69 | mov word[edi+72*2], 0x52ff ; up |
||
70 | mov word[edi+73*2], 0x55ff ; pg up |
||
71 | mov word[edi+75*2], 0x51ff ; left |
||
72 | mov word[edi+77*2], 0x53ff ; right |
||
73 | mov word[edi+79*2], 0x57ff ; end |
||
74 | mov word[edi+80*2], 0x54ff ; down |
||
75 | mov word[edi+81*2], 0x56ff ; pg down |
||
76 | mov word[edi+82*2], 0x63ff ; insert |
||
77 | mov word[edi+83*2], 0xffff ; delete |
||
78 | mov word[edi+87*2], 0xc8ff ; f11 |
||
79 | mov word[edi+88*2], 0xc9ff ; f12 |
||
80 | mov word[edi+91*2], 0xebff ; left super |
||
81 | |||
5677 | hidnplayr | 82 | ret |