Rev 5480 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5480 | Rev 5492 | ||
---|---|---|---|
Line 733... | Line 733... | ||
733 | ret |
733 | ret |
734 | endp |
734 | endp |
735 | ; ============================================================================ ; |
735 | ; ============================================================================ ; |
Line 736... | Line 736... | ||
736 | 736 | ||
- | 737 | ; ============================================================================ ; |
|
- | 738 | ; < eax = key scancode (1 byte) ; |
|
- | 739 | ; ============================================================================ ; |
|
- | 740 | macro wait_for_scancode |
|
- | 741 | { |
|
- | 742 | local .wait |
|
- | 743 | ||
- | 744 | .wait: |
|
- | 745 | mcall 2 |
|
- | 746 | test al, al |
|
- | 747 | jnz .wait |
|
- | 748 | ||
- | 749 | shr eax, 8 |
|
- | 750 | } |
|
- | 751 | ||
737 | ; ============================================================================ ; |
752 | ; ============================================================================ ; |
738 | ; < eax = key scancode / 0 - no keys ; |
753 | ; < eax = key scancode / 0 - no keys ; |
739 | ; ============================================================================ ; |
754 | ; ============================================================================ ; |
740 | proc get_key |
755 | proc get_key |
Line 748... | Line 763... | ||
748 | @@: |
763 | @@: |
749 | shr eax, 8 |
764 | shr eax, 8 |
Line 750... | Line 765... | ||
750 | 765 | ||
751 | cmp eax, 0E1h |
766 | cmp eax, 0E1h |
- | 767 | jne @f |
|
752 | jne @f |
768 | |
753 | mcall 2 |
769 | wait_for_scancode |
- | 770 | wait_for_scancode |
|
754 | mcall 2 |
771 | |
755 | xor eax, eax |
772 | xor eax, eax |
Line 756... | Line 773... | ||
756 | jmp .exit |
773 | jmp .exit |
757 | 774 | ||
758 | @@: |
775 | @@: |
Line 759... | Line 776... | ||
759 | xor ebx, ebx |
776 | xor ebx, ebx |
760 | mov ecx, eax |
777 | mov ecx, eax |
761 | - | ||
- | 778 | ||
762 | cmp eax, 0E0h |
779 | cmp eax, 0E0h |
- | 780 | jne @f |
|
763 | jne @f |
781 | |
764 | mcall 2 |
782 | wait_for_scancode |
765 | shr eax, 8 |
783 | |
Line 766... | Line 784... | ||
766 | mov ecx, eax |
784 | mov ecx, eax |
Line 792... | Line 810... | ||
792 | add ebx, ecx |
810 | add ebx, ecx |
793 | xor edx, edx |
811 | xor edx, edx |
794 | mov [PressedKeys + ebx * 4], edx |
812 | mov [PressedKeys + ebx * 4], edx |
Line 795... | Line 813... | ||
795 | 813 | ||
- | 814 | .exit: |
|
796 | .exit: |
815 | ;DEBUGF DEBUG_FINE, 'get_key: %x\n', eax:4 |
797 | ret |
816 | ret |
798 | endp |
817 | endp |
Line 799... | Line 818... | ||
799 | ; ============================================================================ ; |
818 | ; ============================================================================ ; |