Rev 9926 | Rev 9932 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 9926 | Rev 9930 | ||
---|---|---|---|
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: 9926 $ |
80 | $Revision: 9930 $ |
Line 895... | Line 895... | ||
895 | 895 | ||
896 | mov esi, boot_resirqports |
896 | mov esi, boot_resirqports |
897 | call boot_log |
897 | call boot_log |
Line -... | Line 898... | ||
- | 898 | call reserve_irqs_ports |
|
- | 899 | ||
- | 900 | mov [SLOT_BASE + APPDATA.window], window_data |
|
- | 901 | mov [SLOT_BASE + sizeof.APPDATA + APPDATA.window], window_data + sizeof.WDATA |
|
- | 902 | mov [SLOT_BASE + sizeof.APPDATA*2 + APPDATA.window], window_data + sizeof.WDATA*2 |
|
- | 903 | mov [window_data + WDATA.thread], SLOT_BASE |
|
- | 904 | mov [window_data + sizeof.WDATA + WDATA.thread], SLOT_BASE + sizeof.APPDATA |
|
898 | call reserve_irqs_ports |
905 | mov [window_data + sizeof.WDATA*2 + WDATA.thread], SLOT_BASE + sizeof.APPDATA*2 |
899 | 906 | ||
900 | call init_display |
907 | call init_display |
901 | mov eax, [def_cursor] |
908 | mov eax, [def_cursor] |
Line 902... | Line 909... | ||
902 | mov [SLOT_BASE + APPDATA.cursor + sizeof.APPDATA], eax |
909 | mov [window_data + sizeof.WDATA + WDATA.cursor], eax |
Line 903... | Line 910... | ||
903 | mov [SLOT_BASE + APPDATA.cursor + sizeof.APPDATA*2], eax |
910 | mov [window_data + sizeof.WDATA*2 + WDATA.cursor], eax |
904 | 911 | ||
Line 1177... | Line 1184... | ||
1177 | lea ecx, [sys_proc + PROC.thr_list] |
1184 | lea ecx, [sys_proc + PROC.thr_list] |
1178 | list_add_tail ebx, ecx |
1185 | list_add_tail ebx, ecx |
Line 1179... | Line 1186... | ||
1179 | 1186 | ||
1180 | mov [edx + APPDATA.wnd_number], dh |
1187 | mov [edx + APPDATA.wnd_number], dh |
- | 1188 | mov byte [edx + APPDATA.tid], dh |
|
- | 1189 | movzx eax, dh |
|
- | 1190 | shl eax, BSF sizeof.WDATA |
|
- | 1191 | add eax, window_data |
|
Line 1181... | Line 1192... | ||
1181 | mov byte [edx + APPDATA.tid], dh |
1192 | mov [edx + APPDATA.window], eax |
1182 | 1193 | ||
Line 1183... | Line 1194... | ||
1183 | ret |
1194 | ret |
Line 1347... | Line 1358... | ||
1347 | xor eax, eax |
1358 | xor eax, eax |
1348 | mov [BTN_ADDR], dword BUTTON_INFO ; address of button list |
1359 | mov [BTN_ADDR], dword BUTTON_INFO ; address of button list |
Line 1349... | Line 1360... | ||
1349 | 1360 | ||
1350 | mov byte [KEY_COUNT], al ; keyboard buffer |
1361 | mov byte [KEY_COUNT], al ; keyboard buffer |
1351 | mov byte [BTN_COUNT], al ; button buffer |
- | |
Line 1352... | Line 1362... | ||
1352 | ; mov [MOUSE_X],dword 100*65536+100 ; mouse x/y |
1362 | mov byte [BTN_COUNT], al ; button buffer |
1353 | 1363 | ||
1354 | pop eax |
1364 | pop eax |
Line 1552... | Line 1562... | ||
1552 | sub edx, eax |
1562 | sub edx, eax |
1553 | add edx, esp |
1563 | add edx, esp |
1554 | mov ebx, [esp+64+32-8+4] |
1564 | mov ebx, [esp+64+32-8+4] |
1555 | ; add window start x & y |
1565 | ; add window start x & y |
Line 1556... | Line 1566... | ||
1556 | 1566 | ||
1557 | mov ecx, [current_slot_idx] |
1567 | mov ecx, [current_slot] |
Line 1558... | Line 1568... | ||
1558 | shl ecx, BSF sizeof.WDATA |
1568 | mov ecx, [ecx + APPDATA.window] |
1559 | 1569 | ||
1560 | mov eax, [window_data + ecx + WDATA.box.left] |
1570 | mov eax, [ecx + WDATA.box.left] |
1561 | add eax, [window_data + ecx + WDATA.clientbox.left] |
1571 | add eax, [ecx + WDATA.clientbox.left] |
1562 | shl eax, 16 |
1572 | shl eax, 16 |
1563 | add eax, [window_data + ecx + WDATA.box.top] |
1573 | add eax, [ecx + WDATA.box.top] |
1564 | add eax, [window_data + ecx + WDATA.clientbox.top] |
1574 | add eax, [ecx + WDATA.clientbox.top] |
1565 | add ebx, eax |
1575 | add ebx, eax |
1566 | mov ecx, [esp+64+32-12+4] |
1576 | mov ecx, [esp+64+32-12+4] |
1567 | mov eax, [esp+64+8] ; background color (if given) |
1577 | mov eax, [esp+64+8] ; background color (if given) |
Line 1894... | Line 1904... | ||
1894 | cmp [_display.select_cursor], 0 |
1904 | cmp [_display.select_cursor], 0 |
1895 | je @f |
1905 | je @f |
1896 | ; restore default cursor before killing |
1906 | ; restore default cursor before killing |
1897 | pusha |
1907 | pusha |
1898 | mov ecx, [current_slot] |
1908 | mov ecx, [current_slot] |
- | 1909 | mov ecx, [ecx + APPDATA.window] |
|
1899 | call restore_default_cursor_before_killing |
1910 | call restore_default_cursor_before_killing |
1900 | popa |
1911 | popa |
1901 | @@: |
1912 | @@: |
1902 | ;-------------------------------------- |
1913 | ;-------------------------------------- |
1903 | ; kill all sockets this process owns |
1914 | ; kill all sockets this process owns |
Line 1922... | Line 1933... | ||
1922 | .waitterm: ; wait here for termination |
1933 | .waitterm: ; wait here for termination |
1923 | call change_task |
1934 | call change_task |
1924 | jmp .waitterm |
1935 | jmp .waitterm |
1925 | ;------------------------------------------------------------------------------ |
1936 | ;------------------------------------------------------------------------------ |
1926 | align 4 |
1937 | align 4 |
- | 1938 | ; ecx - ptr WDATA |
|
1927 | restore_default_cursor_before_killing: |
1939 | restore_default_cursor_before_killing: |
1928 | pushfd |
1940 | pushfd |
1929 | cli |
1941 | cli |
1930 | mov eax, [def_cursor] |
1942 | mov eax, [def_cursor] |
1931 | mov [ecx + APPDATA.cursor], eax |
1943 | mov [ecx + WDATA.cursor], eax |
Line 1932... | Line 1944... | ||
1932 | 1944 | ||
1933 | movzx eax, word [MOUSE_Y] |
1945 | movzx eax, word [MOUSE_Y] |
1934 | movzx ebx, word [MOUSE_X] |
1946 | movzx ebx, word [MOUSE_X] |
Line 1935... | Line 1947... | ||
1935 | mov eax, [d_width_calc_area + eax*4] |
1947 | mov eax, [d_width_calc_area + eax*4] |
1936 | 1948 | ||
1937 | add eax, [_display.win_map] |
1949 | add eax, [_display.win_map] |
1938 | movzx edx, byte [ebx + eax] |
1950 | movzx edx, byte [ebx + eax] |
Line 1939... | Line 1951... | ||
1939 | shl edx, BSF sizeof.APPDATA |
1951 | shl edx, BSF sizeof.WDATA |
1940 | mov esi, [SLOT_BASE + edx + APPDATA.cursor] |
1952 | mov esi, [window_data + edx + WDATA.cursor] |
Line 1941... | Line 1953... | ||
1941 | 1953 | ||
Line 1992... | Line 2004... | ||
1992 | @@: |
2004 | @@: |
1993 | ret |
2005 | ret |
1994 | ;------------------------------------------------------------------------------ |
2006 | ;------------------------------------------------------------------------------ |
1995 | sysfn_shutdown: ; 18.9 = system shutdown |
2007 | sysfn_shutdown: ; 18.9 = system shutdown |
1996 | cmp ecx, SYSTEM_SHUTDOWN |
2008 | cmp ecx, SYSTEM_SHUTDOWN |
1997 | jl exit_for_anyone |
2009 | jl .exit_for_anyone |
1998 | cmp ecx, SYSTEM_RESTART |
2010 | cmp ecx, SYSTEM_RESTART |
1999 | jg exit_for_anyone |
2011 | jg .exit_for_anyone |
2000 | mov [BOOT.shutdown_type], cl |
2012 | mov [BOOT.shutdown_type], cl |
Line 2001... | Line 2013... | ||
2001 | 2013 | ||
2002 | mov eax, [thread_count] |
2014 | mov eax, [thread_count] |
2003 | mov [SYS_SHUTDOWN], al |
2015 | mov [SYS_SHUTDOWN], al |
2004 | mov [shutdown_processes], eax |
2016 | mov [shutdown_processes], eax |
2005 | call wakeup_osloop |
2017 | call wakeup_osloop |
2006 | and dword [esp + SYSCALL_STACK.eax], 0 |
2018 | and dword [esp + SYSCALL_STACK.eax], 0 |
2007 | exit_for_anyone: |
2019 | .exit_for_anyone: |
2008 | ret |
2020 | ret |
2009 | uglobal |
2021 | uglobal |
2010 | shutdown_processes: |
2022 | shutdown_processes: |
2011 | dd 0x0 |
2023 | dd 0x0 |
Line 2053... | Line 2065... | ||
2053 | cmp [_display.select_cursor], 0 |
2065 | cmp [_display.select_cursor], 0 |
2054 | je .restore_end |
2066 | je .restore_end |
2055 | ; restore default cursor before killing |
2067 | ; restore default cursor before killing |
2056 | pusha |
2068 | pusha |
2057 | mov ecx, [esp+32] |
2069 | mov ecx, [esp+32] |
2058 | shl ecx, BSF sizeof.APPDATA |
2070 | shl ecx, BSF sizeof.WDATA |
2059 | add ecx, SLOT_BASE |
2071 | add ecx, window_data |
2060 | mov eax, [def_cursor] |
2072 | mov eax, [def_cursor] |
2061 | cmp [ecx + APPDATA.cursor], eax |
2073 | cmp [ecx + WDATA.cursor], eax |
2062 | je @f |
2074 | je @f |
2063 | call restore_default_cursor_before_killing |
2075 | call restore_default_cursor_before_killing |
2064 | @@: |
2076 | @@: |
2065 | popa |
2077 | popa |
2066 | .restore_end: |
2078 | .restore_end: |
Line 2170... | Line 2182... | ||
2170 | je .fail |
2182 | je .fail |
Line 2171... | Line 2183... | ||
2171 | 2183 | ||
2172 | mov eax, edx |
2184 | mov eax, edx |
Line 2173... | Line 2185... | ||
2173 | shl edx, BSF sizeof.WDATA |
2185 | shl edx, BSF sizeof.WDATA |
2174 | 2186 | ||
Line 2175... | Line 2187... | ||
2175 | cmp [edx*(sizeof.APPDATA/sizeof.WDATA) + SLOT_BASE + APPDATA.state], TSTATE_FREE |
2187 | test [window_data + edx + WDATA.fl_wstate], WSTATE_USED |
2176 | je .fail |
2188 | jz .fail |
Line 2177... | Line 2189... | ||
2177 | 2189 | ||
Line 2202... | Line 2214... | ||
2202 | call window._.set_screen |
2214 | call window._.set_screen |
2203 | call window._.set_top_wnd |
2215 | call window._.set_top_wnd |
2204 | call window._.redraw_top_wnd |
2216 | call window._.redraw_top_wnd |
Line 2205... | Line 2217... | ||
2205 | 2217 | ||
2206 | shl esi, BSF sizeof.WDATA |
2218 | shl esi, BSF sizeof.WDATA |
Line 2207... | Line 2219... | ||
2207 | mov [esi + window_data + WDATA.fl_redraw], 1 |
2219 | mov [esi + window_data + WDATA.fl_redraw], WSTATE_REDRAW |
2208 | 2220 | ||
2209 | 2221 | ||
Line 2638... | Line 2650... | ||
2638 | .no_widgets_away: |
2650 | .no_widgets_away: |
Line 2639... | Line 2651... | ||
2639 | 2651 | ||
2640 | cmp ebx, 2 |
2652 | cmp ebx, 2 |
Line 2641... | Line 2653... | ||
2641 | jnz .srl1 |
2653 | jnz .srl1 |
2642 | 2654 | ||
2643 | mov edx, [current_slot_idx] ; return whole screen draw area for this app |
2655 | mov edx, [current_slot] ; return whole screen draw area for this app |
2644 | shl edx, BSF sizeof.WDATA |
2656 | mov edx, [edx + APPDATA.window] |
2645 | mov [draw_data + edx + RECT.left], 0 |
2657 | mov [edx + WDATA.draw_data.left], 0 |
2646 | mov [draw_data + edx + RECT.top], 0 |
2658 | mov [edx + WDATA.draw_data.top], 0 |
2647 | mov eax, [_display.width] |
2659 | mov eax, [_display.width] |
2648 | dec eax |
2660 | dec eax |
2649 | mov [draw_data + edx + RECT.right], eax |
2661 | mov [edx + WDATA.draw_data.right], eax |
2650 | mov eax, [_display.height] |
2662 | mov eax, [_display.height] |
Line 2651... | Line 2663... | ||
2651 | dec eax |
2663 | dec eax |
2652 | mov [draw_data + edx + RECT.bottom], eax |
2664 | mov [edx + WDATA.draw_data.bottom], eax |
Line 2653... | Line 2665... | ||
2653 | 2665 | ||
Line 2861... | Line 2873... | ||
2861 | cmp [background_defined], 0 |
2873 | cmp [background_defined], 0 |
2862 | jz nobackgr |
2874 | jz nobackgr |
2863 | ;-------------------------------------- |
2875 | ;-------------------------------------- |
2864 | align 4 |
2876 | align 4 |
2865 | backgr: |
2877 | backgr: |
2866 | mov eax, [draw_data + sizeof.WDATA + RECT.left] |
2878 | mov eax, [background_window + WDATA.draw_data.left] |
2867 | shl eax, 16 |
2879 | shl eax, 16 |
2868 | add eax, [draw_data + sizeof.WDATA + RECT.right] |
2880 | add eax, [background_window + WDATA.draw_data.right] |
2869 | mov [BG_Rect_X_left_right], eax ; [left]*65536 + [right] |
2881 | mov [BG_Rect_X_left_right], eax ; [left]*65536 + [right] |
Line 2870... | Line 2882... | ||
2870 | 2882 | ||
2871 | mov eax, [draw_data + sizeof.WDATA + RECT.top] |
2883 | mov eax, [background_window + WDATA.draw_data.top] |
2872 | shl eax, 16 |
2884 | shl eax, 16 |
2873 | add eax, [draw_data + sizeof.WDATA + RECT.bottom] |
2885 | add eax, [background_window + WDATA.draw_data.bottom] |
Line 2874... | Line 2886... | ||
2874 | mov [BG_Rect_Y_top_bottom], eax ; [top]*65536 + [bottom] |
2886 | mov [BG_Rect_Y_top_bottom], eax ; [top]*65536 + [bottom] |
2875 | 2887 | ||
2876 | call drawbackground |
2888 | call drawbackground |
Line 2882... | Line 2894... | ||
2882 | xor edi, edi |
2894 | xor edi, edi |
2883 | mov ecx, [thread_count] |
2895 | mov ecx, [thread_count] |
2884 | ;-------------------------------------- |
2896 | ;-------------------------------------- |
2885 | align 4 |
2897 | align 4 |
2886 | set_bgr_event: |
2898 | set_bgr_event: |
2887 | add edi, sizeof.APPDATA |
2899 | add edi, sizeof.WDATA |
2888 | mov eax, [BG_Rect_X_left_right] |
2900 | mov eax, [BG_Rect_X_left_right] |
2889 | mov edx, [BG_Rect_Y_top_bottom] |
2901 | mov edx, [BG_Rect_Y_top_bottom] |
2890 | cmp [SLOT_BASE + edi + APPDATA.draw_bgr_x], 0 |
2902 | cmp [window_data + edi + WDATA.draw_bgr_x], 0 |
2891 | jz .set |
2903 | jz .set |
2892 | .join: |
2904 | .join: |
2893 | cmp word [SLOT_BASE + edi + APPDATA.draw_bgr_x], ax |
2905 | cmp word [window_data + edi + WDATA.draw_bgr_x], ax |
2894 | jae @f |
2906 | jae @f |
2895 | mov word [SLOT_BASE + edi + APPDATA.draw_bgr_x], ax |
2907 | mov word [window_data + edi + WDATA.draw_bgr_x], ax |
2896 | @@: |
2908 | @@: |
2897 | shr eax, 16 |
2909 | shr eax, 16 |
2898 | cmp word [SLOT_BASE + edi + APPDATA.draw_bgr_x + 2], ax |
2910 | cmp word [window_data + edi + WDATA.draw_bgr_x + 2], ax |
2899 | jbe @f |
2911 | jbe @f |
2900 | mov word [SLOT_BASE + edi + APPDATA.draw_bgr_x + 2], ax |
2912 | mov word [window_data + edi + WDATA.draw_bgr_x + 2], ax |
2901 | @@: |
2913 | @@: |
2902 | cmp word [SLOT_BASE + edi + APPDATA.draw_bgr_y], dx |
2914 | cmp word [window_data + edi + WDATA.draw_bgr_y], dx |
2903 | jae @f |
2915 | jae @f |
2904 | mov word [SLOT_BASE + edi + APPDATA.draw_bgr_y], dx |
2916 | mov word [window_data + edi + WDATA.draw_bgr_y], dx |
2905 | @@: |
2917 | @@: |
2906 | shr edx, 16 |
2918 | shr edx, 16 |
2907 | cmp word [SLOT_BASE + edi + APPDATA.draw_bgr_y+2], dx |
2919 | cmp word [window_data + edi + WDATA.draw_bgr_y+2], dx |
2908 | jbe @f |
2920 | jbe @f |
2909 | mov word [SLOT_BASE + edi + APPDATA.draw_bgr_y+2], dx |
2921 | mov word [window_data + edi + WDATA.draw_bgr_y+2], dx |
2910 | @@: |
2922 | @@: |
2911 | jmp .common |
2923 | jmp .common |
2912 | .set: |
2924 | .set: |
2913 | mov [SLOT_BASE + edi + APPDATA.draw_bgr_x], eax |
2925 | mov [window_data + edi + WDATA.draw_bgr_x], eax |
2914 | mov [SLOT_BASE + edi + APPDATA.draw_bgr_y], edx |
2926 | mov [window_data + edi + WDATA.draw_bgr_y], edx |
2915 | .common: |
2927 | .common: |
- | 2928 | mov eax, [window_data + edi + WDATA.thread] |
|
- | 2929 | test eax, eax |
|
- | 2930 | jz @f |
|
2916 | or [SLOT_BASE + edi + APPDATA.occurred_events], EVENT_BACKGROUND |
2931 | or [eax + APPDATA.occurred_events], EVENT_BACKGROUND |
- | 2932 | @@: |
|
- | 2933 | sub ecx, 1 |
|
- | 2934 | jnz set_bgr_event |
|
2917 | loop set_bgr_event |
2935 | ;loop set_bgr_event |
2918 | pop edi ecx |
2936 | pop edi ecx |
2919 | ;--------- set event 5 stop ----------- |
2937 | ;--------- set event 5 stop ----------- |
2920 | dec [REDRAW_BACKGROUND] ; got new update request? |
2938 | dec [REDRAW_BACKGROUND] ; got new update request? |
2921 | jnz backgr |
2939 | jnz backgr |
Line 2922... | Line 2940... | ||
2922 | 2940 | ||
2923 | xor eax, eax |
2941 | xor eax, eax |
2924 | mov [draw_data + sizeof.WDATA + RECT.left], eax |
2942 | mov [background_window + WDATA.draw_data.left], eax |
2925 | mov [draw_data + sizeof.WDATA + RECT.top], eax |
2943 | mov [background_window + WDATA.draw_data.top], eax |
2926 | mov [draw_data + sizeof.WDATA + RECT.right], eax |
2944 | mov [background_window + WDATA.draw_data.right], eax |
2927 | mov [draw_data + sizeof.WDATA + RECT.bottom], eax |
2945 | mov [background_window + WDATA.draw_data.bottom], eax |
2928 | ;-------------------------------------- |
2946 | ;-------------------------------------- |
2929 | align 4 |
2947 | align 4 |
2930 | nobackgr: |
2948 | nobackgr: |
2931 | ; system shutdown request |
2949 | ; system shutdown request |
Line 2984... | Line 3002... | ||
2984 | cmp cl, TSTATE_TERMINATING |
3002 | cmp cl, TSTATE_TERMINATING |
2985 | jnz .noterminate |
3003 | jnz .noterminate |
2986 | .terminate: |
3004 | .terminate: |
2987 | pushad |
3005 | pushad |
2988 | mov ecx, eax |
3006 | mov ecx, eax |
2989 | shl ecx, BSF sizeof.APPDATA |
3007 | shl ecx, BSF sizeof.WDATA |
2990 | add ecx, SLOT_BASE |
3008 | add ecx, window_data |
2991 | call restore_default_cursor_before_killing |
3009 | call restore_default_cursor_before_killing |
2992 | popad |
3010 | popad |
Line 2993... | Line 3011... | ||
2993 | 3011 | ||
2994 | pushad |
3012 | pushad |
Line 3077... | Line 3095... | ||
3077 | 3095 | ||
3078 | cmp [REDRAW_BACKGROUND], 0 |
3096 | cmp [REDRAW_BACKGROUND], 0 |
Line 3079... | Line 3097... | ||
3079 | jz .az |
3097 | jz .az |
3080 | - | ||
3081 | mov dl, 0 |
3098 | |
3082 | lea eax, [edi + draw_data - window_data] |
3099 | mov dl, 0 |
3083 | mov ebx, [draw_limits.left] |
3100 | mov ebx, [draw_limits.left] |
Line 3084... | Line 3101... | ||
3084 | cmp ebx, [eax + RECT.left] |
3101 | cmp ebx, [edi + WDATA.draw_data.left] |
3085 | jae @f |
3102 | jae @f |
3086 | 3103 | ||
3087 | mov [eax + RECT.left], ebx |
3104 | mov [edi + WDATA.draw_data.left], ebx |
3088 | mov dl, 1 |
3105 | mov dl, 1 |
3089 | ;-------------------------------------- |
3106 | ;-------------------------------------- |
3090 | align 4 |
3107 | align 4 |
3091 | @@: |
3108 | @@: |
Line 3092... | Line 3109... | ||
3092 | mov ebx, [draw_limits.top] |
3109 | mov ebx, [draw_limits.top] |
3093 | cmp ebx, [eax + RECT.top] |
3110 | cmp ebx, [edi + WDATA.draw_data.top] |
3094 | jae @f |
3111 | jae @f |
3095 | 3112 | ||
3096 | mov [eax + RECT.top], ebx |
3113 | mov [edi + WDATA.draw_data.top], ebx |
3097 | mov dl, 1 |
3114 | mov dl, 1 |
3098 | ;-------------------------------------- |
3115 | ;-------------------------------------- |
3099 | align 4 |
3116 | align 4 |
Line 3100... | Line 3117... | ||
3100 | @@: |
3117 | @@: |
3101 | mov ebx, [draw_limits.right] |
3118 | mov ebx, [draw_limits.right] |
3102 | cmp ebx, [eax + RECT.right] |
3119 | cmp ebx, [edi + WDATA.draw_data.right] |
3103 | jbe @f |
3120 | jbe @f |
3104 | 3121 | ||
3105 | mov [eax + RECT.right], ebx |
3122 | mov [edi + WDATA.draw_data.right], ebx |
3106 | mov dl, 1 |
3123 | mov dl, 1 |
3107 | ;-------------------------------------- |
3124 | ;-------------------------------------- |
Line 3108... | Line 3125... | ||
3108 | align 4 |
3125 | align 4 |
3109 | @@: |
3126 | @@: |
3110 | mov ebx, [draw_limits.bottom] |
3127 | mov ebx, [draw_limits.bottom] |
3111 | cmp ebx, [eax + RECT.bottom] |
3128 | cmp ebx, [edi + WDATA.draw_data.bottom] |
3112 | jbe @f |
3129 | jbe @f |
3113 | 3130 | ||
Line 3121... | Line 3138... | ||
3121 | jmp newdw8 |
3138 | jmp newdw8 |
3122 | ;-------------------------------------- |
3139 | ;-------------------------------------- |
3123 | align 4 |
3140 | align 4 |
3124 | .az: |
3141 | .az: |
3125 | mov eax, edi |
3142 | mov eax, edi |
3126 | add eax, draw_data-window_data |
- | |
Line 3127... | Line 3143... | ||
3127 | 3143 | ||
3128 | mov ebx, [draw_limits.left] ; set limits |
3144 | mov ebx, [draw_limits.left] ; set limits |
3129 | mov [eax + RECT.left], ebx |
3145 | mov [eax + WDATA.draw_data.left], ebx |
3130 | mov ebx, [draw_limits.top] |
3146 | mov ebx, [draw_limits.top] |
3131 | mov [eax + RECT.top], ebx |
3147 | mov [eax + WDATA.draw_data.top], ebx |
3132 | mov ebx, [draw_limits.right] |
3148 | mov ebx, [draw_limits.right] |
3133 | mov [eax + RECT.right], ebx |
3149 | mov [eax + WDATA.draw_data.right], ebx |
3134 | mov ebx, [draw_limits.bottom] |
3150 | mov ebx, [draw_limits.bottom] |
3135 | mov [eax + RECT.bottom], ebx |
- | |
3136 | - | ||
Line 3137... | Line 3151... | ||
3137 | sub eax, draw_data-window_data |
3151 | mov [eax + WDATA.draw_data.bottom], ebx |
3138 | 3152 | ||
3139 | cmp dword [esp], 1 |
3153 | cmp dword [esp], 1 |
3140 | jne nobgrd |
3154 | jne nobgrd |
Line 3201... | Line 3215... | ||
3201 | ;-------------------------------------- |
3215 | ;-------------------------------------- |
3202 | align 4 |
3216 | align 4 |
3203 | .found: |
3217 | .found: |
3204 | pop ebp edi eax |
3218 | pop ebp edi eax |
Line 3205... | Line 3219... | ||
3205 | 3219 | ||
3206 | mov [eax + WDATA.fl_redraw], byte 1 ; mark as redraw |
3220 | mov [eax + WDATA.fl_redraw], WSTATE_REDRAW ; mark as redraw |
3207 | ;-------------------------------------- |
3221 | ;-------------------------------------- |
3208 | align 4 |
3222 | align 4 |
3209 | ricino: |
3223 | ricino: |
3210 | not_this_task: |
3224 | not_this_task: |
Line 3222... | Line 3236... | ||
3222 | mov edi, [_display.win_map] ; set os to use all pixels |
3236 | mov edi, [_display.win_map] ; set os to use all pixels |
3223 | mov eax, 0x01010101 |
3237 | mov eax, 0x01010101 |
3224 | mov ecx, [_display.win_map_size] |
3238 | mov ecx, [_display.win_map_size] |
3225 | shr ecx, 2 |
3239 | shr ecx, 2 |
3226 | rep stosd |
3240 | rep stosd |
3227 | mov byte[window_data + sizeof.WDATA + WDATA.z_modif], ZPOS_DESKTOP |
3241 | mov byte[background_window + WDATA.z_modif], ZPOS_DESKTOP |
3228 | mov [REDRAW_BACKGROUND], 0 |
3242 | mov [REDRAW_BACKGROUND], 0 |
3229 | ret |
3243 | ret |
3230 | ;----------------------------------------------------------------------------- |
3244 | ;----------------------------------------------------------------------------- |
3231 | uglobal |
3245 | uglobal |
3232 | imax dd 0x0 |
3246 | imax dd 0x0 |