Subversion Repositories Kolibri OS

Rev

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
; ============================================================================ ;