Subversion Repositories Kolibri OS

Rev

Rev 8139 | Rev 8160 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 8139 Rev 8158
Line 69... Line 69...
69
format binary as "mnt"
69
format binary as "mnt"
Line 70... Line 70...
70
 
70
 
71
include 'macros.inc'
71
include 'macros.inc'
Line 72... Line 72...
72
include 'struct.inc'
72
include 'struct.inc'
Line 73... Line 73...
73
 
73
 
74
$Revision: 8139 $
74
$Revision: 8158 $
Line 1744... Line 1744...
1744
        add     ebx, edx
1744
        add     ebx, edx
1745
; 1 = normal layout
1745
; 1 = normal layout
1746
        dec     ecx
1746
        dec     ecx
1747
        jnz     .shift
1747
        jnz     .shift
Line -... Line 1748...
-
 
1748
 
-
 
1749
        cmp     ebx, 0x7FFFFFFF ; if given memory address belongs to kernel then error
-
 
1750
        ja      .addr_error
1748
 
1751
 
1749
        mov     eax, keymap
1752
        mov     eax, keymap
1750
        mov     ecx, 128
1753
        mov     ecx, 128
1751
        call    memmove
1754
        call    memmove
1752
        ret
1755
        ret
1753
;--------------------------------------
1756
;--------------------------------------
1754
.shift:
1757
.shift:
1755
; 2 = layout with pressed Shift
1758
; 2 = layout with pressed Shift
1756
        dec     ecx
1759
        dec     ecx
Line -... Line 1760...
-
 
1760
        jnz     .alt
-
 
1761
 
-
 
1762
        cmp     ebx, 0x7FFFFFFF
1757
        jnz     .alt
1763
        ja      .addr_error
1758
 
1764
 
1759
        mov     eax, keymap_shift
1765
        mov     eax, keymap_shift
1760
        mov     ecx, 128
1766
        mov     ecx, 128
1761
        call    memmove
1767
        call    memmove
1762
        ret
1768
        ret
1763
;--------------------------------------
1769
;--------------------------------------
1764
.alt:
1770
.alt:
1765
; 3 = layout with pressed Alt
1771
; 3 = layout with pressed Alt
Line -... Line 1772...
-
 
1772
        dec     ecx
-
 
1773
        jne     .country
-
 
1774
 
1766
        dec     ecx
1775
        cmp     ebx, 0x7FFFFFFF
1767
        jne     .country
1776
        ja      .addr_error
1768
 
1777
 
1769
        mov     eax, keymap_alt
1778
        mov     eax, keymap_alt
1770
        mov     ecx, 128
1779
        mov     ecx, 128
Line 1777... Line 1786...
1777
        jnz     .error
1786
        jnz     .error
Line 1778... Line 1787...
1778
 
1787
 
1779
        movzx   eax, word [keyboard]
1788
        movzx   eax, word [keyboard]
1780
        mov     [esp+32], eax
1789
        mov     [esp+32], eax
-
 
1790
        ret
-
 
1791
 
-
 
1792
.addr_error:    ; if given memory address is illegal
-
 
1793
        mov     eax, -1
1781
        ret
1794
        ret        
1782
;--------------------------------------
1795
;--------------------------------------
1783
@@:
1796
@@:
1784
; F.26.5 - get system language
1797
; F.26.5 - get system language
1785
        sub     ebx, 3
1798
        sub     ebx, 3