Subversion Repositories Kolibri OS

Rev

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

Rev 9613 Rev 9614
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: 9613 $
80
$Revision: 9614 $
Line 1184... Line 1184...
1184
        mov     [edx+APPDATA.wnd_number], dh
1184
        mov     [edx+APPDATA.wnd_number], dh
1185
        mov     byte [edx+APPDATA.tid], dh    ;?
1185
        mov     byte [edx+APPDATA.tid], dh    ;?
1186
        mov     eax, edx
1186
        mov     eax, edx
1187
        shr     eax, 3
1187
        shr     eax, 3
1188
        add     eax, TASK_TABLE - (SLOT_BASE shr 3)
1188
        add     eax, TASK_TABLE - (SLOT_BASE shr 3)
1189
        ;mov     [eax+TASKDATA.wnd_number], dh
-
 
1190
        mov     byte [eax+TASKDATA.pid], dh
1189
        mov     byte [eax+TASKDATA.pid], dh
Line 1191... Line 1190...
1191
 
1190
 
1192
        ret
1191
        ret
Line 1547... Line 1546...
1547
        mov     edx, 64+4
1546
        mov     edx, 64+4
1548
        sub     edx, eax
1547
        sub     edx, eax
1549
        add     edx, esp
1548
        add     edx, esp
1550
        mov     ebx, [esp+64+32-8+4]
1549
        mov     ebx, [esp+64+32-8+4]
1551
; add window start x & y
1550
; add window start x & y
1552
        ;mov     ecx, [TASK_BASE]
-
 
Line 1553... Line 1551...
1553
 
1551
 
1554
        mov     edi, [current_slot_idx]
1552
        mov     edi, [current_slot_idx]
1555
        mov     ecx, edi
1553
        mov     ecx, edi
1556
        shl     edi, 8
1554
        shl     edi, 8
Line 1612... Line 1610...
1612
@@:
1610
@@:
1613
; F.21.2 - set keyboard layout
1611
; F.21.2 - set keyboard layout
1614
        dec     ebx
1612
        dec     ebx
1615
        jnz     @f
1613
        jnz     @f
Line 1616... Line -...
1616
 
-
 
1617
        ;mov     edi, [TASK_BASE]
-
 
1618
        ;mov     eax, [edi+TASKDATA.mem_start]
1614
 
1619
        mov     edi, [current_slot]
1615
        mov     edi, [current_slot]
1620
        mov     eax, [edi+APPDATA.mem_start]
1616
        mov     eax, [edi+APPDATA.mem_start]
1621
        add     eax, edx
1617
        add     eax, edx
1622
; 1 = normal layout
1618
; 1 = normal layout
Line 1711... Line 1707...
1711
@@:
1707
@@:
1712
; F.26.2 - get keyboard layout
1708
; F.26.2 - get keyboard layout
1713
        dec     ebx
1709
        dec     ebx
1714
        jnz     @f
1710
        jnz     @f
Line 1715... Line -...
1715
 
-
 
1716
        ;mov     edi, [TASK_BASE]
-
 
1717
        ;mov     ebx, [edi+TASKDATA.mem_start]
1711
 
1718
        mov     edi, [current_slot]
1712
        mov     edi, [current_slot]
1719
        mov     ebx, [edi+APPDATA.mem_start]
1713
        mov     ebx, [edi+APPDATA.mem_start]
1720
        add     ebx, edx
1714
        add     ebx, edx
1721
; 1 = normal layout
1715
; 1 = normal layout
Line 2309... Line 2303...
2309
        cld
2303
        cld
2310
        rep movsb
2304
        rep movsb
2311
.exit:
2305
.exit:
2312
        ret
2306
        ret
2313
;------------------------------------------------------------------------------
2307
;------------------------------------------------------------------------------
2314
;sysfn_lastkey:          ; 18.12 = return 0 (backward compatibility)
-
 
2315
;        and     dword [esp+32], 0
-
 
2316
;        ret
-
 
2317
;------------------------------------------------------------------------------
-
 
2318
sysfn_getversion:       ; 18.13 = get kernel ID and version
2308
sysfn_getversion:       ; 18.13 = get kernel ID and version
2319
        ; if given memory address belongs to kernel then error
2309
        ; if given memory address belongs to kernel then error
2320
        stdcall is_region_userspace, ecx, version_end-version_inf
2310
        stdcall is_region_userspace, ecx, version_end-version_inf
2321
        jnz     .addr_error
2311
        jnz     .addr_error
Line 2696... Line 2686...
2696
        mov     al, [ecx+window_data+WDATA.fl_wstate]
2686
        mov     al, [ecx+window_data+WDATA.fl_wstate]
2697
        stosb
2687
        stosb
Line 2698... Line 2688...
2698
 
2688
 
2699
    ; Event mask (+71)
2689
    ; Event mask (+71)
2700
        mov     EAX, dword [ecx*8 + SLOT_BASE + APPDATA.event_mask]
-
 
2701
        mov     EAX, dword [ECX+TASK_TABLE+TASKDATA.event_mask]     ; delete
2690
        mov     EAX, dword [ecx*8 + SLOT_BASE + APPDATA.event_mask]
Line 2702... Line 2691...
2702
        stosd
2691
        stosd
2703
 
2692
 
2704
    ; Keyboard mode (+75)
2693
    ; Keyboard mode (+75)
Line 2939... Line 2928...
2939
;--------------------------------------
2928
;--------------------------------------
2940
align 4
2929
align 4
2941
.set_mouse_event:
2930
.set_mouse_event:
2942
        add     edi, sizeof.APPDATA
2931
        add     edi, sizeof.APPDATA
2943
        add     ebx, sizeof.TASKDATA
2932
        add     ebx, sizeof.TASKDATA
2944
        test    [ebx+TASKDATA.event_mask], 0x80000000
2933
        test    [edi + SLOT_BASE + APPDATA.event_mask], 0x80000000
2945
        jz      .pos_filter
2934
        jz      .pos_filter
Line 2946... Line 2935...
2946
 
2935
 
2947
        cmp     edi, [esp]                      ; skip if filtration active
2936
        cmp     edi, [esp]                      ; skip if filtration active
2948
        jne     .skip
2937
        jne     .skip
2949
;--------------------------------------
2938
;--------------------------------------
2950
align 4
2939
align 4
2951
.pos_filter:
2940
.pos_filter:
2952
        test    [ebx+TASKDATA.event_mask], 0x40000000
2941
        test    [edi + SLOT_BASE + APPDATA.event_mask], 0x40000000
Line 2953... Line 2942...
2953
        jz      .set
2942
        jz      .set
2954
 
2943
 
2955
        mov     esi, [ebx-twdw+WDATA.box.left]
2944
        mov     esi, [ebx-twdw+WDATA.box.left]
Line 3411... Line 3400...
3411
        ret
3400
        ret
3412
;-----------------------------------------------------------------------------
3401
;-----------------------------------------------------------------------------
3413
align 4
3402
align 4
3414
set_app_param:
3403
set_app_param:
3415
        mov     edi, [current_slot]
3404
        mov     edi, [current_slot]
3416
        mov     edi, [TASK_BASE]
-
 
3417
        mov     eax, ebx
-
 
3418
        ;xchg    eax, [edi + APPDATA.event_mask] ; set new event mask
3405
        xchg    ebx, [edi + APPDATA.event_mask] ; set new event mask
3419
        xchg    eax, [edi + TASKDATA.event_mask] ; set new event mask
-
 
3420
        mov     [esp+32], eax                    ; return old mask value
3406
        mov     [esp+32], ebx                    ; return old mask value
3421
        ret
3407
        ret
3422
;-----------------------------------------------------------------------------
3408
;-----------------------------------------------------------------------------
Line 3423... Line 3409...
3423
 
3409
 
3424
; this is for syscall
3410
; this is for syscall