Subversion Repositories Kolibri OS

Rev

Rev 5677 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5677 Rev 5693
Line 17... Line 17...
17
; Read keymaps from kernel
17
; Read keymaps from kernel
18
        mcall   26, 2, 1, keymap+128
18
        mcall   26, 2, 1, keymap+128
19
        mcall   26, 2, 2, keymap_shift+128
19
        mcall   26, 2, 2, keymap_shift+128
20
        mcall   26, 2, 3, keymap_alt+128
20
        mcall   26, 2, 3, keymap_alt+128
Line 21... Line -...
21
 
-
 
22
        mov     esi, keymap+128
21
 
23
        mov     edi, keymap
-
 
24
        mov     ecx, 128
22
        mov     edi, keymap
Line 25... Line -...
25
        call    convert_keymap
-
 
26
 
23
        call    convert_keymap
27
        mov     esi, keymap_shift+128
-
 
28
        mov     edi, keymap_shift
24
 
Line 29... Line -...
29
        mov     ecx, 128
-
 
30
        call    convert_keymap
25
        mov     edi, keymap_shift
31
 
-
 
32
        mov     esi, keymap_alt+128
26
        call    convert_keymap
Line 33... Line 27...
33
        mov     edi, keymap_alt
27
 
Line 34... Line 28...
34
        mov     ecx, 128
28
        mov     edi, keymap_alt
-
 
29
        call    convert_keymap
-
 
30
 
-
 
31
        ret
-
 
32
 
-
 
33
 
35
        call    convert_keymap
34
 
36
 
35
convert_keymap:
37
        ret
-
 
38
 
-
 
39
 
-
 
40
 
-
 
41
convert_keymap:
-
 
42
  .loop:
-
 
43
        lodsb
-
 
44
 
-
 
45
        cmp     al, 0x08        ; Backspace
-
 
46
        jne     @f
-
 
47
        mov     ax, 0x08ff
-
 
48
        jmp     .next
-
 
49
  @@:
-
 
50
        cmp     al, 0x09        ; Tab
-
 
51
        jne     @f
-
 
52
        mov     ax, 0x09ff
-
 
53
        jmp     .next
-
 
54
  @@:
-
 
55
        cmp     al, 0x0d        ; Enter
-
 
56
        jne     @f
-
 
57
        mov     ax, 0x0dff
-
 
58
        jmp     .next
-
 
59
  @@:
-
 
60
        cmp     al, 0x1b        ; Escape
-
 
61
        jne     @f
-
 
62
        mov     ax, 0x1bff
-
 
63
        jmp     .next
-
 
64
  @@:
-
 
65
        cmp     al, 0x34        ; Insert
-
 
66
        jne     @f
-
 
67
        mov     ax, 0x63ff
-
 
68
        jmp     .next
-
 
69
  @@:
-
 
70
        cmp     al, 0xb6        ; Delete
-
 
71
        jne     @f
-
 
72
        mov     ax, 0xffff
-
 
73
        jmp     .next
-
 
74
  @@:
-
 
75
        cmp     al, 0xb4        ; Home
-
 
76
        jne     @f
-
 
77
        mov     ax, 0x50ff
-
 
78
        jmp     .next
-
 
79
  @@:
-
 
80
        cmp     al, 0xb5        ; End
-
 
81
        jne     @f
-
 
82
        mov     ax, 0x57ff
-
 
83
        jmp     .next
-
 
84
  @@:
-
 
85
        cmp     al, 0xb8        ; PgUp
-
 
86
        jne     @f
-
 
87
        mov     ax, 0x55ff
-
 
88
        jmp     .next
-
 
89
  @@:
-
 
90
        cmp     al, 0xb7        ; PgDown
-
 
91
        jne     @f
-
 
92
        mov     ax, 0x56ff
-
 
93
        jmp     .next
-
 
94
  @@:
-
 
95
        cmp     al, 0xb0        ; Left
-
 
96
        jne     @f
-
 
97
        mov     ax, 0x51ff
-
 
98
        jmp     .next
-
 
99
  @@:
-
 
100
        cmp     al, 0xb2        ; Up
-
 
101
        jne     @f
-
 
102
        mov     ax, 0x52ff
-
 
103
        jmp     .next
-
 
104
  @@:
-
 
105
        cmp     al, 0xb3        ; Right
-
 
106
        jne     @f
-
 
107
        mov     ax, 0x53ff
-
 
108
        jmp     .next
-
 
109
  @@:
36
 
110
        cmp     al, 0xb1        ; Down
-
 
111
        jne     @f
37
        push    edi
112
        mov     ax, 0x54ff
38
        lea     esi, [edi+128]
113
        jmp     .next
39
        mov     ecx, 128
-
 
40
        xor     eax, eax
-
 
41
  .loop:
-
 
42
        lodsb
-
 
43
        shl     ax, 8
-
 
44
        stosw
-
 
45
        dec     ecx
-
 
46
        jnz     .loop
-
 
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
114
  @@:
75
        mov     word[edi+81*2], 0x56ff  ; pg down
115
 
76
        mov     word[edi+82*2], 0x63ff  ; insert