Subversion Repositories Kolibri OS

Rev

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