Rev 1694 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1694 | Rev 1699 | ||
|---|---|---|---|
| Line 78... | Line 78... | ||
| 78 | 1, |
78 | 1, |
| 79 | msim_cmds |
79 | msim_cmds |
| 80 | }; |
80 | }; |
| 81 | 81 | ||
| 82 | static int msim,gxemul; |
82 | static int msim,gxemul; |
| - | 83 | static int fb_fb; |
|
| - | 84 | ||
| 83 | 85 | ||
| 84 | int kbd_arch_init(void) |
86 | int kbd_arch_init(void) |
| 85 | { |
87 | { |
| - | 88 | fb_fb=sysinfo_value("fb.kind")==1; |
|
| 86 | ipc_register_irq(2, &msim_kbd); |
89 | ipc_register_irq(2, &msim_kbd); |
| 87 | msim=sysinfo_value("machine.msim"); |
- | |
| 88 | gxemul=sysinfo_value("machine.lgxemul"); |
- | |
| 89 | return 0; |
90 | return 0; |
| 90 | } |
91 | } |
| 91 | 92 | ||
| 92 | 93 | ||
| 93 | //* |
94 | /* |
| 94 | //* |
95 | //* |
| 95 | //* Please preserve this code (it can be used to determine scancodes) |
96 | //* Please preserve this code (it can be used to determine scancodes) |
| 96 | //* |
97 | //* |
| 97 | int to_hex(int v) |
98 | int to_hex(int v) |
| 98 | { |
99 | { |
| 99 | return "0123456789ABCDEF"[v]; |
100 | return "0123456789ABCDEF"[v]; |
| 100 | } |
101 | } |
| 101 | //*/ |
102 | */ |
| 102 | 103 | ||
| 103 | static int kbd_arch_process_msim(keybuffer_t *keybuffer, int scan_code) |
104 | static int kbd_arch_process_no_fb(keybuffer_t *keybuffer, int scan_code) |
| 104 | { |
105 | { |
| 105 | 106 | ||
| 106 | static unsigned long buf=0; |
107 | static unsigned long buf=0; |
| 107 | static int count=0; |
108 | static int count=0; |
| 108 | 109 | ||
| 109 | 110 | ||
| 110 | //* Please preserve this code (it can be used to determine scancodes) |
111 | /* Please preserve this code (it can be used to determine scancodes) |
| 111 | //* |
- | |
| 112 | //keybuffer_push(keybuffer, to_hex((scan_code>>4)&0xf)); |
- | |
| 113 | //keybuffer_push(keybuffer, to_hex(scan_code&0xf)); |
- | |
| 114 | //keybuffer_push(keybuffer, ' '); |
- | |
| 115 | //keybuffer_push(keybuffer, ' '); |
- | |
| 116 | //*/ |
- | |
| 117 | //return 1; |
- | |
| 118 | 112 | |
|
| - | 113 | keybuffer_push(keybuffer, to_hex((scan_code>>4)&0xf)); |
|
| - | 114 | keybuffer_push(keybuffer, to_hex(scan_code&0xf)); |
|
| - | 115 | keybuffer_push(keybuffer, ' '); |
|
| - | 116 | keybuffer_push(keybuffer, ' '); |
|
| - | 117 | |
|
| - | 118 | return 1; |
|
| - | 119 | */ |
|
| 119 | 120 | ||
| 120 | if(scan_code==0x7e) |
121 | if(scan_code==0x7e) |
| 121 | { |
122 | { |
| 122 | switch (buf){ |
123 | switch (buf){ |
| 123 | case MSIM_KEY_F5: |
124 | case MSIM_KEY_F5: |
| Line 249... | Line 250... | ||
| 249 | return 1; |
250 | return 1; |
| 250 | } |
251 | } |
| 251 | 252 | ||
| 252 | 253 | ||
| 253 | 254 | ||
| 254 | static int kbd_arch_process_gxemul(keybuffer_t *keybuffer, int scan_code) |
255 | static int kbd_arch_process_fb(keybuffer_t *keybuffer, int scan_code) |
| 255 | { |
256 | { |
| 256 | 257 | ||
| 257 | static unsigned long buf=0; |
258 | static unsigned long buf=0; |
| 258 | static int count=0; |
259 | static int count=0; |
| 259 | 260 | ||
| 260 | 261 | ||
| 261 | //* Please preserve this code (it can be used to determine scancodes) |
262 | /* Please preserve this code (it can be used to determine scancodes) |
| 262 | //* |
- | |
| 263 | //keybuffer_push(keybuffer, to_hex((scan_code>>4)&0xf)); |
- | |
| 264 | //keybuffer_push(keybuffer, to_hex(scan_code&0xf)); |
- | |
| 265 | //keybuffer_push(keybuffer, ' '); |
- | |
| 266 | //keybuffer_push(keybuffer, ' '); |
- | |
| 267 | //*/ |
- | |
| 268 | //return 1; |
- | |
| 269 | 263 | |
|
| - | 264 | keybuffer_push(keybuffer, to_hex((scan_code>>4)&0xf)); |
|
| - | 265 | keybuffer_push(keybuffer, to_hex(scan_code&0xf)); |
|
| - | 266 | keybuffer_push(keybuffer, ' '); |
|
| - | 267 | keybuffer_push(keybuffer, ' '); |
|
| - | 268 | |
|
| - | 269 | return 1; |
|
| - | 270 | */ |
|
| 270 | 271 | ||
| 271 | if ( scan_code == '\r' ) |
272 | if ( scan_code == '\r' ) |
| 272 | scan_code = '\n' ; |
273 | scan_code = '\n' ; |
| 273 | 274 | ||
| 274 | buf|=((unsigned long) scan_code)<<(8*(count++)); |
275 | buf|=((unsigned long) scan_code)<<(8*(count++)); |
| Line 387... | Line 388... | ||
| 387 | } |
388 | } |
| 388 | } else { |
389 | } else { |
| 389 | esc_count=0; |
390 | esc_count=0; |
| 390 | } |
391 | } |
| 391 | 392 | ||
| 392 | if(msim) return kbd_arch_process_msim(keybuffer, scan_code); |
393 | if(fb_fb) return kbd_arch_process_fb(keybuffer, scan_code); |
| 393 | if(gxemul) return kbd_arch_process_gxemul(keybuffer, scan_code); |
394 | return kbd_arch_process_no_fb(keybuffer, scan_code); |
| 394 | 395 | ||
| 395 | return 0; |
396 | return 0; |
| 396 | } |
397 | } |
| 397 | - | ||
| 398 | /** |
- | |
| 399 | * @} |
398 | /** @} |
| 400 | */ |
399 | */ |