Rev 1474 | Rev 1495 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1474 | Rev 1494 | ||
---|---|---|---|
Line 55... | Line 55... | ||
55 | ;; |
55 | ;; |
56 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
56 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 57... | Line 57... | ||
57 | 57 | ||
Line 58... | Line 58... | ||
58 | include 'macros.inc' |
58 | include 'macros.inc' |
Line 59... | Line 59... | ||
59 | 59 | ||
Line 60... | Line 60... | ||
60 | $Revision: 1474 $ |
60 | $Revision: 1494 $ |
Line 4458... | Line 4458... | ||
4458 | mov [esp+36], ecx |
4458 | mov [esp+36], ecx |
4459 | mov [esp+24], ecx |
4459 | mov [esp+24], ecx |
4460 | .smbl2: |
4460 | .smbl2: |
4461 | ret |
4461 | ret |
Line -... | Line 4462... | ||
- | 4462 | ||
- | 4463 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
- | 4464 | ;; 66 sys function. ;; |
|
- | 4465 | ;; in eax=66,ebx in [0..5],ecx,edx ;; |
|
- | 4466 | ;; out eax ;; |
|
- | 4467 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
- | 4468 | iglobal |
|
- | 4469 | align 4 |
|
- | 4470 | f66call: |
|
- | 4471 | dd sys_process_def.1 ; 1 = set keyboard mode |
|
- | 4472 | dd sys_process_def.2 ; 2 = get keyboard mode |
|
- | 4473 | dd sys_process_def.3 ; 3 = get keyboard ctrl, alt, shift |
|
- | 4474 | dd sys_process_def.4 |
|
- | 4475 | dd sys_process_def.5 |
|
- | 4476 | endg |
|
- | 4477 | ||
Line 4462... | Line 4478... | ||
4462 | 4478 | ||
- | 4479 | ||
- | 4480 | ||
- | 4481 | sys_process_def: |
|
- | 4482 | dec ebx |
|
4463 | 4483 | cmp ebx,5 |
|
- | 4484 | jae .not_support ;if >=6 then or eax,-1 |
|
Line 4464... | Line -... | ||
4464 | - | ||
4465 | sys_process_def: |
4485 | |
- | 4486 | mov edi, [CURRENT_TASK] |
|
- | 4487 | jmp dword [f66call+ebx*4] |
|
Line -... | Line 4488... | ||
- | 4488 | ||
4466 | mov edi, [CURRENT_TASK] |
4489 | .not_support: |
4467 | 4490 | or eax,-1 |
|
Line 4468... | Line 4491... | ||
4468 | dec eax ; 1 = set keyboard mode |
4491 | ret |
Line 4469... | Line -... | ||
4469 | jne no_set_keyboard_setup |
- | |
4470 | - | ||
4471 | shl edi,8 |
- | |
4472 | mov [edi+SLOT_BASE + APPDATA.keyboard_mode],bl |
4492 | |
4473 | - | ||
4474 | ret |
4493 | .1: |
4475 | 4494 | shl edi,8 |
|
4476 | no_set_keyboard_setup: |
- | |
4477 | 4495 | mov [edi+SLOT_BASE + APPDATA.keyboard_mode],cl |
|
4478 | dec eax ; 2 = get keyboard mode |
- | |
4479 | jne no_get_keyboard_setup |
4496 | |
4480 | - | ||
4481 | shl edi,8 |
- | |
4482 | movzx eax, byte [SLOT_BASE+edi + APPDATA.keyboard_mode] |
- | |
4483 | - | ||
4484 | mov [esp+36],eax |
- | |
4485 | - | ||
4486 | ret |
4497 | ret |
4487 | 4498 | ||
4488 | no_get_keyboard_setup: |
4499 | .2: ; 2 = get keyboard mode |
4489 | 4500 | shl edi,8 |
|
4490 | dec eax ; 3 = get keyboard ctrl, alt, shift |
4501 | movzx eax, byte [SLOT_BASE+edi + APPDATA.keyboard_mode] |
4491 | jne no_get_keyboard_cas |
4502 | mov [esp+32],eax |
4492 | 4503 | ret |
|
4493 | ; xor eax,eax |
4504 | ; xor eax,eax |
4494 | ; movzx eax,byte [shift] |
- | |
- | 4505 | ; movzx eax,byte [shift] |
|
4495 | ; movzx ebx,byte [ctrl] |
4506 | ; movzx ebx,byte [ctrl] |
4496 | ; shl ebx,2 |
4507 | ; shl ebx,2 |
4497 | ; add eax,ebx |
4508 | ; add eax,ebx |
4498 | ; movzx ebx,byte [alt] |
- | |
4499 | ; shl ebx,3 |
4509 | ; movzx ebx,byte [alt] |
4500 | ; add eax,ebx |
- | |
4501 | 4510 | ; shl ebx,3 |
|
Line 4502... | Line -... | ||
4502 | ;// mike.dld [ |
- | |
4503 | mov eax, [kb_state] |
- | |
4504 | ;// mike.dld ] |
- | |
4505 | - | ||
4506 | mov [esp+36],eax |
4511 | ; add eax,ebx |
4507 | 4512 | .3: ;3 = get keyboard ctrl, alt, shift |
|
4508 | ret |
4513 | ;// mike.dld [ |
4509 | 4514 | mov eax, [kb_state] |
|
4510 | no_get_keyboard_cas: |
4515 | ;// mike.dld ] |
4511 | 4516 | mov [esp+32],eax |
|
4512 | dec eax |
4517 | ret |
4513 | jnz no_add_keyboard_hotkey |
4518 | |
4514 | 4519 | .4: |
|
4515 | mov eax, hotkey_list |
4520 | mov eax, hotkey_list |
4516 | @@: |
4521 | @@: |
4517 | cmp dword [eax+8], 0 |
4522 | cmp dword [eax+8], 0 |
4518 | jz .found_free |
4523 | jz .found_free |
4519 | add eax, 16 |
4524 | add eax, 16 |
4520 | cmp eax, hotkey_list+16*256 |
4525 | cmp eax, hotkey_list+16*256 |
4521 | jb @b |
4526 | jb @b |
4522 | mov dword [esp+36], 1 |
4527 | mov dword [esp+32], 1 |
4523 | ret |
4528 | ret |
4524 | .found_free: |
4529 | .found_free: |
4525 | mov [eax+8], edi |
4530 | mov [eax+8], edi |
4526 | mov [eax+4], ecx |
4531 | mov [eax+4], edx |
4527 | movzx ebx, bl |
4532 | movzx ecx, cl |
4528 | lea ebx, [hotkey_scancodes+ebx*4] |
4533 | lea ecx, [hotkey_scancodes+ecx*4] |
4529 | mov ecx, [ebx] |
4534 | mov edx, [ecx] |
Line 4530... | Line -... | ||
4530 | mov [eax], ecx |
- | |
4531 | mov [ebx], eax |
- | |
4532 | mov [eax+12], ebx |
- | |
4533 | jecxz @f |
- | |
4534 | mov [ecx+12], eax |
4535 | mov [eax], edx |
4535 | @@: |
4536 | mov [ecx], eax |
4536 | and dword [esp+36], 0 |
4537 | mov [eax+12], ecx |
4537 | ret |
4538 | jecxz @f |
4538 | 4539 | mov [edx+12], eax |
|
4539 | no_add_keyboard_hotkey: |
4540 | @@: |
4540 | 4541 | and dword [esp+32], 0 |
|
4541 | dec eax |
4542 | ret |
4542 | jnz no_del_keyboard_hotkey |
4543 | |
4543 | 4544 | .5: |
|
4544 | movzx ebx, bl |
4545 | movzx ebx, cl |
4545 | lea ebx, [hotkey_scancodes+ebx*4] |
4546 | lea ebx, [hotkey_scancodes+ebx*4] |
4546 | mov eax, [ebx] |
4547 | mov eax, [ebx] |
4547 | .scan: |
4548 | .scan: |
4548 | test eax, eax |
4549 | test eax, eax |
4549 | jz .notfound |
4550 | jz .notfound |
4550 | cmp [eax+8], edi |
4551 | cmp [eax+8], edi |
4551 | jnz .next |
4552 | jnz .next |
4552 | cmp [eax+4], ecx |
4553 | cmp [eax+4], edx |
4553 | jz .found |
4554 | jz .found |
4554 | .next: |
4555 | .next: |
Line 4569... | Line 4570... | ||
4569 | xor edx, edx |
4570 | xor edx, edx |
4570 | mov [eax+4], edx |
4571 | mov [eax+4], edx |
4571 | mov [eax+8], edx |
4572 | mov [eax+8], edx |
4572 | mov [eax+12], edx |
4573 | mov [eax+12], edx |
4573 | mov [eax], edx |
4574 | mov [eax], edx |
4574 | mov [esp+36], edx |
4575 | mov [esp+32], edx |
4575 | ret |
- | |
4576 | - | ||
4577 | no_del_keyboard_hotkey: |
- | |
4578 | ret |
4576 | ret |
Line 4579... | Line -... | ||
4579 | - | ||
4580 | 4577 | ||
Line 4581... | Line 4578... | ||
4581 | align 4 |
4578 | align 4 |
Line 4582... | Line 4579... | ||
4582 | 4579 |