Subversion Repositories Kolibri OS

Rev

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

Rev 9709 Rev 9710
Line 75... Line 75...
75
format binary as "mnt"
75
format binary as "mnt"
Line 76... Line 76...
76
 
76
 
77
include 'macros.inc'
77
include 'macros.inc'
Line 78... Line 78...
78
include 'struct.inc'
78
include 'struct.inc'
Line 79... Line 79...
79
 
79
 
80
$Revision: 9709 $
80
$Revision: 9710 $
Line 1605... Line 1605...
1605
@@:
1605
@@:
1606
; F.21.2 - set keyboard layout
1606
; F.21.2 - set keyboard layout
1607
        dec     ebx
1607
        dec     ebx
1608
        jnz     @f
1608
        jnz     @f
Line 1609... Line -...
1609
 
-
 
1610
        mov     edi, [current_slot]
-
 
1611
        mov     eax, [edi+APPDATA.mem_start]
1609
 
1612
        add     eax, edx
1610
        mov     eax, edx
1613
; 1 = normal layout
1611
; 1 = normal layout
1614
        dec     ecx
1612
        dec     ecx
Line 1615... Line 1613...
1615
        jnz     .shift
1613
        jnz     .shift
Line 1702... Line 1700...
1702
@@:
1700
@@:
1703
; F.26.2 - get keyboard layout
1701
; F.26.2 - get keyboard layout
1704
        dec     ebx
1702
        dec     ebx
1705
        jnz     @f
1703
        jnz     @f
Line 1706... Line -...
1706
 
-
 
1707
        mov     edi, [current_slot]
-
 
1708
        mov     ebx, [edi+APPDATA.mem_start]
1704
 
1709
        add     ebx, edx
-
 
1710
; 1 = normal layout
-
 
1711
        dec     ecx
-
 
1712
        jnz     .shift
-
 
1713
 
1705
        mov     ebx, edx
1714
        ; if given memory address belongs to kernel then error
1706
        ; if given memory address belongs to kernel then error
1715
        stdcall is_region_userspace, ebx, 128
1707
        stdcall is_region_userspace, ebx, 128
-
 
1708
        jnz     .addr_error
-
 
1709
; 1 = normal layout
-
 
1710
        dec     ecx
Line 1716... Line 1711...
1716
        jnz     .addr_error
1711
        jnz     .shift
1717
 
1712
 
1718
        mov     eax, keymap
1713
        mov     eax, keymap
1719
        mov     ecx, 128
1714
        mov     ecx, 128
Line 1723... Line 1718...
1723
.shift:
1718
.shift:
1724
; 2 = layout with pressed Shift
1719
; 2 = layout with pressed Shift
1725
        dec     ecx
1720
        dec     ecx
1726
        jnz     .alt
1721
        jnz     .alt
Line 1727... Line -...
1727
 
-
 
1728
        stdcall is_region_userspace, ebx, 128
-
 
1729
        jnz     .addr_error
-
 
1730
 
1722
 
1731
        mov     eax, keymap_shift
1723
        mov     eax, keymap_shift
1732
        mov     ecx, 128
1724
        mov     ecx, 128
1733
        call    memmove
1725
        call    memmove
1734
        ret
1726
        ret
1735
;--------------------------------------
1727
;--------------------------------------
1736
.alt:
1728
.alt:
1737
; 3 = layout with pressed Alt
1729
; 3 = layout with pressed Alt
1738
        dec     ecx
1730
        dec     ecx
Line 1739... Line -...
1739
        jne     .country
-
 
1740
 
-
 
1741
        stdcall is_region_userspace, ebx, 128
-
 
1742
        jnz     .addr_error
1731
        jne     .country
1743
 
1732
 
1744
        mov     eax, keymap_alt
1733
        mov     eax, keymap_alt
1745
        mov     ecx, 128
1734
        mov     ecx, 128
1746
        call    memmove
1735
        call    memmove