Rev 6351 | Rev 6386 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6351 | Rev 6384 | ||
---|---|---|---|
Line 161... | Line 161... | ||
161 | { |
161 | { |
162 | int i; |
162 | int i; |
163 | SDL_keysym key; |
163 | SDL_keysym key; |
164 | static int ext_code=0; |
164 | static int ext_code=0; |
165 | static uint8_t old_mode=0; |
165 | static uint8_t old_mode=0; |
- | 166 | ||
166 | for (;;) { |
167 | for (;;) { |
167 | i=check_os_event(); |
168 | i=check_os_event(); |
- | 169 | unsigned int k; |
|
- | 170 | ||
168 | switch(i) |
171 | switch(i) |
169 | { |
172 | { |
170 | case 0: |
173 | case 0: |
171 | return; |
174 | return; |
172 | case 1: |
175 | case 1: |
- | 176 | ||
173 | MenuetOS_SDL_RepaintWnd(); |
177 | MenuetOS_SDL_RepaintWnd(); |
174 | break; |
178 | break; |
- | 179 | ||
175 | case 2: |
180 | case 2: |
- | 181 | __asm__ __volatile__("int $0x40":"=a"(k):"a"(2)); |
|
176 | key.scancode = get_key().code; |
182 | key.scancode = (k >> 8) & 0xFF; |
- | 183 | ||
177 | if (key.scancode == 0xE0 || key.scancode == 0xE1) |
184 | if (key.scancode == 0xE0 || key.scancode == 0xE1) |
178 | {ext_code=key.scancode;break;} |
185 | {ext_code=key.scancode;break;} |
- | 186 | ||
179 | if (ext_code == 0xE1 && (key.scancode & 0x7F) == 0x1D) break; |
187 | if (ext_code == 0xE1 && (key.scancode & 0x7F) == 0x1D) { break;} |
180 | if (ext_code == 0xE1 && key.scancode == 0xC5) {ext_code=0;break;} |
188 | if (ext_code == 0xE1 && key.scancode == 0xC5) {ext_code=0;break;} |
181 | key.mod = GetModState(); |
189 | key.mod = GetModState(); |
182 | if (ext_code == 0xE1) key.mod &= ~KMOD_CTRL; |
190 | if (ext_code == 0xE1) key.mod &= ~KMOD_CTRL; |
183 | if (!(key.scancode&0x80)) |
191 | if (!(key.scancode&0x80)) |
184 | old_mode = key.mod; |
192 | old_mode = key.mod; |