Rev 5680 | Rev 5708 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5680 | Rev 5693 | ||
---|---|---|---|
Line 157... | Line 157... | ||
157 | jz mouse |
157 | jz mouse |
158 | jmp mainloop |
158 | jmp mainloop |
Line 159... | Line 159... | ||
159 | 159 | ||
160 | key: |
160 | key: |
161 | mcall 66, 3 |
161 | mcall 66, 3 |
Line 162... | Line 162... | ||
162 | mov ebx, eax |
162 | mov ebx, eax ; get modifier keys |
163 | 163 | ||
164 | mcall 2 |
164 | mcall 2 ; get key scancode |
Line 165... | Line 165... | ||
165 | cmp ah, 224 ; ext |
165 | cmp ah, 224 ; extended keycode? |
166 | je mainloop ;; TODO |
166 | je .extended |
167 | 167 | ||
168 | xor al, al |
168 | xor al, al |
169 | test ah, 0x80 ; key up? |
169 | test ah, 0x80 ; key up? |
170 | jnz @f |
170 | jnz @f |
Line 171... | Line 171... | ||
171 | inc al |
171 | inc al |
172 | @@: |
- | |
Line 173... | Line 172... | ||
173 | mov byte[KeyEvent.down], al |
172 | @@: |
174 | 173 | mov byte[KeyEvent.down], al |
|
175 | shr eax, 7 |
174 | |
176 | and eax, 0x000000fe |
175 | movzx eax, ah |
177 | 176 | ||
- | 177 | test ebx, 100000b ; alt? |
|
178 | test ebx, 100000b ; alt? |
178 | jz .no_alt |
- | 179 | mov ax, [keymap_alt+eax*2] |
|
- | 180 | jmp .key |
|
179 | jz @f |
181 | .no_alt: |
- | 182 | ||
- | 183 | test ebx, 11b ; shift? |
|
- | 184 | jz .no_shift |
|
- | 185 | mov ax, [keymap_shift+eax*2] |
|
- | 186 | jmp .key |
|
- | 187 | .no_shift: |
|
- | 188 | ||
- | 189 | test ebx, 10000000b ; numlock ? |
|
- | 190 | jz .no_numlock |
|
- | 191 | cmp al, 71 |
|
- | 192 | jb .no_numlock |
|
- | 193 | cmp al, 83 |
|
- | 194 | ja .no_numlock |
|
- | 195 | mov ah, [keymap_numlock+eax-71] |
|
180 | add eax, 512 |
196 | xor al, al |
- | 197 | jmp .key |
|
181 | jmp .key |
198 | |
- | 199 | .extended: ; extended keys always use regular keymap |
|
182 | @@: |
200 | mcall 2 |
183 | test ebx, 11b ; shift? |
201 | shr eax, 8 |
- | 202 | jz mainloop |
|
184 | jz @f |
203 | .no_numlock: |
185 | add eax, 256 |
204 | mov ax, [keymap+eax*2] |
186 | @@: |
205 | .key: |
187 | .key: |
206 | test ax, ax |
Line -... | Line 207... | ||
- | 207 | jz mainloop |
|
188 | mov ax, [keymap+eax] |
208 | mov word[KeyEvent.key+2], ax |
189 | mov word[KeyEvent.key+2], ax |
209 | DEBUGF 1, "Sending key: 0x%x\n", ax |
Line 190... | Line 210... | ||
190 | DEBUGF 1, "Sending key: 0x%x\n", ax |
210 | mcall send, [socketnum], KeyEvent, 8, 0 |
191 | mcall send, [socketnum], KeyEvent, 8, 0 |
211 | jmp mainloop |
Line 220... | Line 240... | ||
220 | 240 | ||
Line 221... | Line 241... | ||
221 | ; DATA AREA |
241 | ; DATA AREA |
Line -... | Line 242... | ||
- | 242 | ||
- | 243 | include_debug_strings |
|
- | 244 | ||
- | 245 | keymap_numlock: |
|
- | 246 | db '7', '8', '9', '-' |
|
- | 247 | db '4', '5', '6', '+' |
|
222 | 248 | db '1', '2', '3' |
|
Line 223... | Line 249... | ||
223 | include_debug_strings |
249 | db '0', '.' |
Line 224... | Line 250... | ||
224 | 250 | ||
Line 321... | Line 347... | ||
321 | status dd STATUS_INITIAL |
347 | status dd STATUS_INITIAL |
322 | update_gui dd 0 |
348 | update_gui dd 0 |
323 | mouse_dd dd 0 |
349 | mouse_dd dd 0 |
324 | update_framebuffer dd 0 |
350 | update_framebuffer dd 0 |
Line 325... | Line 351... | ||
325 | 351 | ||
326 | URLbox edit_box 235, 70, 10, 0xffffff, 0x6f9480, 0, 0, 0, 65535, serveraddr, mouse_dd, ed_focus, 0, 0 |
352 | URLbox edit_box 235, 70, 20, 0xffffff, 0x6f9480, 0, 0, 0, 65535, serveraddr, mouse_dd, ed_focus, 0, 0 |
327 | USERbox edit_box 200, 90, 10, 0xffffff, 0x6f9480, 0, 0, 0, 127, username, mouse_dd, ed_focus, 0, 0 |
353 | USERbox edit_box 215, 90, 10, 0xffffff, 0x6f9480, 0, 0, 0, 127, username, mouse_dd, ed_focus, 0, 0 |
Line 328... | Line 354... | ||
328 | PASSbox edit_box 200, 90, 30, 0xffffff, 0x6f9480, 0, 0, 0, 127, password, mouse_dd, ed_pass, 0, 0 |
354 | PASSbox edit_box 215, 90, 30, 0xffffff, 0x6f9480, 0, 0, 0, 127, password, mouse_dd, ed_pass, 0, 0 |
329 | 355 | ||
330 | serverstr db "server:" |
356 | serverstr db "server:" |
331 | userstr db "username:" |
357 | userstr db "username:" |