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 |