Subversion Repositories Kolibri OS

Rev

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

Rev 5645 Rev 5984
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: 5645 $
74
$Revision: 5984 $
Line 699... Line 699...
699
        mov     [clipboard_main_list], eax
699
        mov     [clipboard_main_list], eax
Line 700... Line 700...
700
 
700
 
701
        mov     eax, [hpet_base]
701
        mov     eax, [hpet_base]
702
        test    eax, eax
702
        test    eax, eax
703
        jz      @F
-
 
704
        DEBUGF  1, "K : HPET base %x\n", eax
-
 
705
        mov     eax, [hpet_period]
-
 
706
        DEBUGF  1, "K : HPET period %d\n", eax
-
 
707
        mov     eax, [hpet_timers]
-
 
708
        DEBUGF  1, "K : HPET timers %d\n", eax
-
 
709
 
703
        jz      @F
710
        mov     eax, [hpet_base]
704
        mov     eax, [hpet_base]
711
        stdcall map_io_mem, [hpet_base], 1024, PG_GLOBAL+PAT_UC+PG_SWR
705
        stdcall map_io_mem, [hpet_base], 1024, PG_GLOBAL+PAT_UC+PG_SWR
712
        mov     [hpet_base], eax
-
 
713
 
706
        mov     [hpet_base], eax
714
        mov     eax, [eax]
707
        mov     eax, [eax]
715
        DEBUGF  1, "K : HPET caps %x\n", eax
-
 
716
 
708
        DEBUGF  1, "K : HPET caps %x\n", eax
717
@@:
709
@@:
Line 718... Line 710...
718
; SET UP OS TASK
710
; SET UP OS TASK
719
 
711
 
Line 1039... Line 1031...
1039
; PRINT CPU FREQUENCY
1031
; PRINT CPU FREQUENCY
Line 1040... Line 1032...
1040
 
1032
 
1041
        mov     esi, boot_cpufreq
1033
        mov     esi, boot_cpufreq
Line -... Line 1034...
-
 
1034
        call    boot_log
-
 
1035
 
-
 
1036
        cli
-
 
1037
        mov     ebx, [hpet_base]
-
 
1038
        test    ebx, ebx
-
 
1039
        jz      @F
-
 
1040
        mov     ebx, [ebx+0xF0]
-
 
1041
 
-
 
1042
        rdtsc
-
 
1043
        mov     ecx, 1000
-
 
1044
        sub     eax, [hpet_tsc_start]
-
 
1045
        sbb     edx, [hpet_tsc_start+4]
-
 
1046
        shld    edx, eax, 10
-
 
1047
        shl     eax, 10
-
 
1048
        mov     esi, eax
-
 
1049
        mov     eax, edx
-
 
1050
        mul     ecx
-
 
1051
        xchg    eax, esi
-
 
1052
        mul     ecx
-
 
1053
        adc     edx, esi
-
 
1054
        div     ebx
-
 
1055
        mul     ecx
1042
        call    boot_log
1056
        div     [hpet_period]
-
 
1057
        mul     ecx
-
 
1058
        DEBUGF  1, "K : cpu frequency %u Hz\n", eax
1043
 
1059
        jmp     .next
1044
        cli                         ;FIXME check IF
1060
@@:
1045
        rdtsc
1061
        rdtsc
1046
        mov     ecx, eax
1062
        mov     ecx, eax
1047
        mov     esi, 250            ; wait 1/4 a second
1063
        mov     esi, 250            ; wait 1/4 a second
Line 1051... Line 1067...
1051
 
1067
 
1052
        sub     eax, ecx
1068
        sub     eax, ecx
1053
        xor     edx, edx
1069
        xor     edx, edx
1054
        shld    edx, eax, 2
1070
        shld    edx, eax, 2
-
 
1071
        shl     eax, 2
1055
        shl     eax, 2
1072
.next:
1056
        mov     dword [cpu_freq], eax
1073
        mov     dword [cpu_freq], eax
1057
        mov     dword [cpu_freq+4], edx
1074
        mov     dword [cpu_freq+4], edx
1058
        mov     ebx, 1000000
1075
        mov     ebx, 1000000
1059
        div     ebx
1076
        div     ebx
Line 1101... Line 1118...
1101
 
1118
 
Line 1102... Line 1119...
1102
; LOAD DEFAULT SKIN
1119
; LOAD DEFAULT SKIN
Line 1103... Line 1120...
1103
 
1120
 
Line 1104... Line 1121...
1104
        call    load_default_skin
1121
        call    load_default_skin
1105
 
1122
 
1106
;protect io permission map
1123
; Protect I/O permission map
1107
 
1124
 
Line 1903... Line 1920...
1903
        mov     eax, [timer_ticks]
1920
        mov     eax, [timer_ticks]
1904
        mov     [esp+32], eax
1921
        mov     [esp+32], eax
1905
        ret
1922
        ret
1906
;--------------------------------------
1923
;--------------------------------------
1907
@@:
1924
@@:
-
 
1925
; F.26.10 - get the time from kernel launch in nanoseconds
-
 
1926
        sub     ebx, 1
-
 
1927
        jnz     @f
-
 
1928
 
-
 
1929
        call    get_clock_ns
-
 
1930
        mov     [esp+24], edx
-
 
1931
        mov     [esp+32], eax
-
 
1932
        ret
-
 
1933
;--------------------------------------
-
 
1934
@@:
1908
; F.26.11 - Find out whether low-level HD access is enabled
1935
; F.26.11 - Find out whether low-level HD access is enabled
1909
        sub     ebx, 2
1936
        sub     ebx, 1
1910
        jnz     @f
1937
        jnz     @f
Line 1911... Line 1938...
1911
 
1938
 
1912
        mov     eax, [lba_read_enabled]
1939
        mov     eax, [lba_read_enabled]
1913
        mov     [esp+32], eax
1940
        mov     [esp+32], eax
Line 1930... Line 1957...
1930
        mov     eax, [timer_ticks]
1957
        mov     eax, [timer_ticks]
1931
        ret
1958
        ret
1932
;-----------------------------------------------------------------------------
1959
;-----------------------------------------------------------------------------
1933
iglobal
1960
iglobal
1934
align 4
1961
align 4
1935
mousefn dd msscreen, mswin, msbutton, msset
1962
mousefn dd msscreen
-
 
1963
        dd mswin
-
 
1964
        dd msbutton
-
 
1965
        dd msbuttonExt
1936
        dd app_load_cursor
1966
        dd app_load_cursor
1937
        dd app_set_cursor
1967
        dd app_set_cursor
1938
        dd app_delete_cursor
1968
        dd app_delete_cursor
1939
        dd msz
1969
        dd msz
1940
endg
1970
endg
Line 1942... Line 1972...
1942
readmousepos:
1972
readmousepos:
Line 1943... Line 1973...
1943
 
1973
 
1944
; eax=0 screen relative
1974
; eax=0 screen relative
1945
; eax=1 window relative
1975
; eax=1 window relative
1946
; eax=2 buttons pressed
1976
; eax=2 buttons pressed
1947
; eax=3 set mouse pos   ; reserved
1977
; eax=3 buttons pressed ext
1948
; eax=4 load cursor
1978
; eax=4 load cursor
1949
; eax=5 set cursor
1979
; eax=5 set cursor
1950
; eax=6 delete cursor   ; reserved
1980
; eax=6 delete cursor
Line 1951... Line 1981...
1951
; eax=7 get mouse_z
1981
; eax=7 get mouse_z
1952
 
1982
 
1953
        cmp     ebx, 7
1983
        cmp     ebx, 7
-
 
1984
        ja      @f
1954
        ja      msset
1985
        jmp     [mousefn+ebx*4]
1955
        jmp     [mousefn+ebx*4]
1986
 
1956
msscreen:
1987
msscreen:
1957
        mov     eax, [MOUSE_X]
1988
        mov     eax, [MOUSE_X]
1958
        shl     eax, 16
1989
        shl     eax, 16
-
 
1990
        mov     ax, [MOUSE_Y]
1959
        mov     ax, [MOUSE_Y]
1991
        mov     [esp+36-4], eax
-
 
1992
@@:
1960
        mov     [esp+36-4], eax
1993
        ret
1961
        ret
1994
 
1962
mswin:
1995
mswin:
1963
        mov     eax, [MOUSE_X]
1996
        mov     eax, [MOUSE_X]
1964
        shl     eax, 16
1997
        shl     eax, 16
1965
        mov     ax, [MOUSE_Y]
1998
        mov     ax, [MOUSE_Y]
1966
        mov     esi, [TASK_BASE]
1999
        mov     esi, [TASK_BASE]
1967
        mov     bx, word [esi-twdw+WDATA.box.left]
2000
        mov     bx, word [esi-twdw+WDATA.box.left]
1968
        shl     ebx, 16
2001
        shl     ebx, 16
1969
        mov     bx, word [esi-twdw+WDATA.box.top]
-
 
1970
        sub     eax, ebx
2002
        mov     bx, word [esi-twdw+WDATA.box.top]
1971
 
2003
        sub     eax, ebx
1972
        mov     edi, [CURRENT_TASK]
2004
        mov     edi, [CURRENT_TASK]
1973
        shl     edi, 8
2005
        shl     edi, 8
1974
        sub     ax, word[edi+SLOT_BASE+APPDATA.wnd_clientbox.top]
2006
        sub     ax, word[edi+SLOT_BASE+APPDATA.wnd_clientbox.top]
1975
        rol     eax, 16
2007
        rol     eax, 16
1976
        sub     ax, word[edi+SLOT_BASE+APPDATA.wnd_clientbox.left]
2008
        sub     ax, word[edi+SLOT_BASE+APPDATA.wnd_clientbox.left]
1977
        rol     eax, 16
2009
        rol     eax, 16
-
 
2010
        mov     [esp+36-4], eax
1978
        mov     [esp+36-4], eax
2011
        ret
1979
        ret
2012
 
1980
msbutton:
2013
msbutton:
1981
        movzx   eax, byte [BTN_DOWN]
2014
        movzx   eax, byte [BTN_DOWN]
1982
        mov     [esp+36-4], eax
2015
        mov     [esp+36-4], eax
1983
        ret
-
 
1984
msz:
-
 
1985
        mov     edi, [TASK_COUNT]
-
 
1986
        movzx   edi, word [WIN_POS + edi*2]
2016
        ret
1987
        cmp     edi, [CURRENT_TASK]
-
 
1988
        jne     @f
-
 
1989
        mov     ax, [MOUSE_SCROLL_H]
2017
 
1990
        shl     eax, 16
2018
msbuttonExt:
1991
        mov     ax, [MOUSE_SCROLL_V]
-
 
1992
        mov     [esp+36-4], eax
-
 
1993
        and     [MOUSE_SCROLL_H], word 0
-
 
1994
        and     [MOUSE_SCROLL_V], word 0
-
 
1995
        ret
-
 
1996
       @@:
-
 
1997
        and     [esp+36-4], dword 0
-
 
1998
;           ret
2019
        mov     eax, [BTN_DOWN]
Line 1999... Line 2020...
1999
msset:
2020
        mov     [esp+36-4], eax
2000
        ret
2021
        ret
2001
 
2022
 
2002
app_load_cursor:
2023
app_load_cursor:
2003
        cmp     ecx, OS_BASE
2024
        cmp     ecx, OS_BASE
-
 
2025
        jae     @f
2004
        jae     msset
2026
        stdcall load_cursor, ecx, edx
Line 2005... Line 2027...
2005
        stdcall load_cursor, ecx, edx
2027
        mov     [esp+36-4], eax
2006
        mov     [esp+36-4], eax
2028
@@:
2007
        ret
2029
        ret
Line 2014... Line 2036...
2014
app_delete_cursor:
2036
app_delete_cursor:
2015
        stdcall delete_cursor, ecx
2037
        stdcall delete_cursor, ecx
2016
        mov     [esp+36-4], eax
2038
        mov     [esp+36-4], eax
2017
        ret
2039
        ret
Line -... Line 2040...
-
 
2040
 
-
 
2041
msz:
-
 
2042
        mov     edi, [TASK_COUNT]
-
 
2043
        movzx   edi, word [WIN_POS + edi*2]
-
 
2044
        cmp     edi, [CURRENT_TASK]
-
 
2045
        jne     @f
-
 
2046
        mov     ax, [MOUSE_SCROLL_H]
-
 
2047
        shl     eax, 16
-
 
2048
        mov     ax, [MOUSE_SCROLL_V]
-
 
2049
        mov     [esp+36-4], eax
-
 
2050
        and     [MOUSE_SCROLL_H], word 0
-
 
2051
        and     [MOUSE_SCROLL_V], word 0
-
 
2052
        ret
-
 
2053
@@:
-
 
2054
        and     [esp+36-4], dword 0
-
 
2055
        ret
2018
 
2056
 
Line 2019... Line 2057...
2019
is_input:
2057
is_input:
2020
 
2058
 
2021
        push    edx
2059
        push    edx
Line 2202... Line 2240...
2202
        dd      sysfn_meminfo           ; 20 = get extended memory info
2240
        dd      sysfn_meminfo           ; 20 = get extended memory info
2203
        dd      sysfn_pid_to_slot       ; 21 = get slot number for pid
2241
        dd      sysfn_pid_to_slot       ; 21 = get slot number for pid
2204
        dd      sysfn_min_rest_window   ; 22 = minimize and restore any window
2242
        dd      sysfn_min_rest_window   ; 22 = minimize and restore any window
2205
        dd      sysfn_min_windows       ; 23 = minimize all windows
2243
        dd      sysfn_min_windows       ; 23 = minimize all windows
2206
        dd      sysfn_set_screen_sizes  ; 24 = set screen sizes for Vesa
2244
        dd      sysfn_set_screen_sizes  ; 24 = set screen sizes for Vesa
-
 
2245
 
-
 
2246
        dd      sysfn_zmodif            ; 25 = get/set window z modifier  ;Fantomer
2207
sysfn_num = ($ - sys_system_table)/4
2247
sysfn_num = ($ - sys_system_table)/4
2208
endg
2248
endg
2209
;------------------------------------------------------------------------------
2249
;------------------------------------------------------------------------------
2210
sys_system:
2250
sys_system:
2211
        dec     ebx
2251
        dec     ebx
Line 2361... Line 2401...
2361
        lea     esi, [WIN_POS + esi * 2]
2401
        lea     esi, [WIN_POS + esi * 2]
2362
        call    waredraw
2402
        call    waredraw
2363
.nowindowactivate:
2403
.nowindowactivate:
2364
        ret
2404
        ret
2365
;------------------------------------------------------------------------------
2405
;------------------------------------------------------------------------------
-
 
2406
align 4
-
 
2407
sysfn_zmodif:
-
 
2408
;18,25,1 - get z_modif
-
 
2409
;18,25,2 - set z_modif
-
 
2410
;edx = -1(for current task) or TID
-
 
2411
;esi(for 2) = new value z_modif
-
 
2412
;return:
-
 
2413
;1:   eax = z_modif
-
 
2414
;2: eax=0(fail),1(success) for set z_modif
-
 
2415
 
-
 
2416
        cmp     edx, -1
-
 
2417
        jne     @f
-
 
2418
        mov     edx, [CURRENT_TASK]
-
 
2419
     @@:
-
 
2420
        cmp     edx, [TASK_COUNT]
-
 
2421
        ja      .fail
-
 
2422
        cmp     edx, 1
-
 
2423
        je      .fail
-
 
2424
 
-
 
2425
        mov     eax, edx
-
 
2426
        shl     edx, 5
-
 
2427
 
-
 
2428
        cmp     [edx + CURRENT_TASK + TASKDATA.state], 9
-
 
2429
        je      .fail
-
 
2430
 
-
 
2431
        cmp     ecx, 1
-
 
2432
        jnz     .set_zmod
-
 
2433
 
-
 
2434
        mov     al, [edx + window_data + WDATA.z_modif]
-
 
2435
        jmp     .exit
-
 
2436
 
-
 
2437
.set_zmod:
-
 
2438
        cmp     ecx, 2
-
 
2439
        jnz     .fail
-
 
2440
 
-
 
2441
        mov     ebx, esi
-
 
2442
        mov     esi, eax
-
 
2443
 
-
 
2444
        cmp     bl, ZPOS_ALWAYS_TOP
-
 
2445
        jg      .fail
-
 
2446
 
-
 
2447
        mov     [edx + window_data + WDATA.z_modif], bl
-
 
2448
 
-
 
2449
        mov     eax, [edx + window_data + WDATA.box.left]
-
 
2450
        mov     ebx, [edx + window_data + WDATA.box.top]
-
 
2451
        mov     ecx, [edx + window_data + WDATA.box.width]
-
 
2452
        mov     edx, [edx + window_data + WDATA.box.height]
-
 
2453
        add     ecx, eax
-
 
2454
        add     edx, ebx
-
 
2455
        call    window._.set_screen
-
 
2456
        call    window._.set_top_wnd
-
 
2457
        call    window._.redraw_top_wnd
-
 
2458
 
-
 
2459
        shl     esi, 5
-
 
2460
        mov     [esi + window_data + WDATA.fl_redraw], 1
-
 
2461
 
-
 
2462
 
-
 
2463
        mov     eax, 1
-
 
2464
        jmp     .exit
-
 
2465
.fail:
-
 
2466
        xor     eax, eax
-
 
2467
.exit:
-
 
2468
        mov     [esp+32], eax
-
 
2469
        ret
-
 
2470
 
-
 
2471
;------------------------------------------------------------------------------
2366
sysfn_getidletime:              ; 18.4 = GET IDLETIME
2472
sysfn_getidletime:              ; 18.4 = GET IDLETIME
2367
        mov     eax, [CURRENT_TASK+32+TASKDATA.cpu_usage]
2473
        mov     eax, [CURRENT_TASK+32+TASKDATA.cpu_usage]
2368
        mov     [esp+32], eax
2474
        mov     [esp+32], eax
2369
        ret
2475
        ret
2370
;------------------------------------------------------------------------------
2476
;------------------------------------------------------------------------------
Line 2444... Line 2550...
2444
        and     [esp+32], dword 0
2550
        and     [esp+32], dword 0
2445
        ret
2551
        ret
2446
;------------------------------------------------------------------------------
2552
;------------------------------------------------------------------------------
2447
align 4
2553
align 4
2448
sysfn_centermouse:      ; 18.15 = mouse centered
2554
sysfn_centermouse:      ; 18.15 = mouse centered
2449
; removed here by 
-
 
2450
;     call  mouse_centered
-
 
2451
;* mouse centered - start code- Mario79
-
 
2452
;mouse_centered:
-
 
2453
;        push  eax
-
 
2454
        mov     eax, [_display.width]
2555
        mov     eax, [_display.width]
2455
        shr     eax, 1
2556
        shr     eax, 1
2456
        mov     [MOUSE_X], ax
2557
        mov     [MOUSE_X], ax
2457
        mov     eax, [_display.height]
2558
        mov     eax, [_display.height]
2458
        shr     eax, 1
2559
        shr     eax, 1
2459
        mov     [MOUSE_Y], ax
2560
        mov     [MOUSE_Y], ax
2460
        call    wakeup_osloop
2561
        call    wakeup_osloop
2461
;        ret
-
 
2462
;* mouse centered - end code- Mario79
-
 
2463
        xor     eax, eax
2562
        xor     eax, eax
2464
        and     [esp+32], eax
2563
        and     [esp+32], eax
2465
;        pop   eax
-
 
2466
        ret
2564
        ret
2467
;------------------------------------------------------------------------------
2565
;------------------------------------------------------------------------------
2468
align 4
-
 
2469
sysfn_mouse_acceleration: ; 18.19 = set/get mouse features
2566
sysfn_mouse_acceleration:       ; 18.19 = set/get mouse features
-
 
2567
        cmp     ecx, 8
-
 
2568
        jnc     @f
2470
        test    ecx, ecx; get mouse speed factor
2569
        jmp     dword [.table+ecx*4]
2471
        jnz     .set_mouse_acceleration
2570
.get_mouse_acceleration:
2472
        xor     eax, eax
2571
        xor     eax, eax
2473
        mov     ax, [mouse_speed_factor]
2572
        mov     ax, [mouse_speed_factor]
2474
        mov     [esp+32], eax
2573
        mov     [esp+32], eax
2475
        ret
2574
        ret
2476
 .set_mouse_acceleration:
2575
.set_mouse_acceleration:
2477
;     cmp  ecx,1  ; set mouse speed factor
-
 
2478
        dec     ecx
-
 
2479
        jnz     .get_mouse_delay
-
 
2480
        mov     [mouse_speed_factor], dx
2576
        mov     [mouse_speed_factor], dx
2481
        ret
2577
        ret
2482
 .get_mouse_delay:
2578
.get_mouse_delay:
2483
;     cmp  ecx,2  ; get mouse delay
-
 
2484
        dec     ecx
2579
        xor     eax, eax
2485
        jnz     .set_mouse_delay
-
 
2486
        mov     eax, [mouse_delay]
2580
        mov     al, [mouse_delay]
2487
        mov     [esp+32], eax
2581
        mov     [esp+32], eax
2488
        ret
2582
        ret
2489
 .set_mouse_delay:
2583
.set_mouse_delay:
2490
;     cmp  ecx,3  ; set mouse delay
-
 
2491
        dec     ecx
-
 
2492
        jnz     .set_pointer_position
-
 
2493
        mov     [mouse_delay], edx
2584
        mov     [mouse_delay], dl
-
 
2585
@@:
2494
        ret
2586
        ret
2495
 .set_pointer_position:
2587
.set_pointer_position:
2496
;     cmp  ecx,4  ; set mouse pointer position
-
 
2497
        dec     ecx
-
 
2498
        jnz     .set_mouse_button
-
 
2499
        cmp     dx, word[_display.height]
2588
        cmp     dx, word[_display.height]
2500
        jae     .end
2589
        jae     @b
2501
        rol     edx, 16
2590
        rol     edx, 16
2502
        cmp     dx, word[_display.width]
2591
        cmp     dx, word[_display.width]
2503
        jae     .end
2592
        jae     @b
2504
        mov     [MOUSE_X], edx
2593
        mov     [MOUSE_X], edx
2505
        mov     [mouse_active], 1
2594
        mov     [mouse_active], 1
2506
        call    wakeup_osloop
2595
        jmp     wakeup_osloop
2507
        ret
-
 
2508
 .set_mouse_button:
2596
.set_mouse_button:
2509
;     cmp   ecx,5  ; set mouse button features
-
 
2510
        dec     ecx
-
 
2511
        jnz     .end
-
 
2512
        mov     [BTN_DOWN], dl
2597
        mov     [BTN_DOWN], edx
2513
        mov     [mouse_active], 1
2598
        mov     [mouse_active], 1
2514
        call    wakeup_osloop
2599
        jmp     wakeup_osloop
2515
 .end:
2600
.get_doubleclick_delay:
-
 
2601
        xor     eax, eax
-
 
2602
        mov     al, [mouse_doubleclick_delay]
-
 
2603
        mov     [esp+32], eax
2516
        ret
2604
        ret
-
 
2605
.set_doubleclick_delay:
-
 
2606
        mov     [mouse_doubleclick_delay], dl
-
 
2607
        ret
-
 
2608
align 4
-
 
2609
.table:
-
 
2610
dd      .get_mouse_acceleration
-
 
2611
dd      .set_mouse_acceleration
-
 
2612
dd      .get_mouse_delay
-
 
2613
dd      .set_mouse_delay
-
 
2614
dd      .set_pointer_position
-
 
2615
dd      .set_mouse_button
-
 
2616
dd      .get_doubleclick_delay
-
 
2617
dd      .set_doubleclick_delay
2517
;------------------------------------------------------------------------------
2618
;------------------------------------------------------------------------------
2518
sysfn_getfreemem:
2619
sysfn_getfreemem:
2519
        mov     eax, [pg_data.pages_free]
2620
        mov     eax, [pg_data.pages_free]
2520
        shl     eax, 2
2621
        shl     eax, 2
2521
        mov     [esp+32], eax
2622
        mov     [esp+32], eax
Line 3738... Line 3839...
3738
        mov     edi, eax
3839
        mov     edi, eax
Line 3739... Line 3840...
3739
 
3840
 
3740
        cmp     ecx, 1             ; limit for background
3841
        cmp     ecx, 1             ; limit for background
Line -... Line 3842...
-
 
3842
        jz      bgli
-
 
3843
 
-
 
3844
        mov     eax, [esp+4]        ;if upper in z-position - no redraw
-
 
3845
        test    eax, eax
-
 
3846
        jz      @f
-
 
3847
        mov     al, [eax + WDATA.z_modif]
-
 
3848
        cmp     [edi + WDATA.z_modif], al
-
 
3849
        jg      ricino
3741
        jz      bgli
3850
      @@:
3742
 
3851
 
Line 3743... Line 3852...
3743
        mov     eax, [edi + WDATA.box.left]
3852
        mov     eax, [edi + WDATA.box.left]
3744
        mov     ebx, [edi + WDATA.box.top]
3853
        mov     ebx, [edi + WDATA.box.top]