diff --git a/kernel/trunk/core/taskman.inc b/kernel/trunk/core/taskman.inc index 910b25eb42..b2d1c71176 100644 --- a/kernel/trunk/core/taskman.inc +++ b/kernel/trunk/core/taskman.inc @@ -1141,9 +1141,9 @@ proc set_app_params stdcall,slot:dword, params:dword,\ xor eax, eax mov [ecx+0], dword eax mov [ecx+4], dword eax - mov eax, [Screen_Max_X] + mov eax, [screen_workarea.right] mov [ecx+8], eax - mov eax, [Screen_Max_Y] + mov eax, [screen_workarea.bottom] mov [ecx+12], eax mov ebx, [pl0_stack] diff --git a/kernel/trunk/data32.inc b/kernel/trunk/data32.inc index e815b89f8f..6ce64a00fb 100644 --- a/kernel/trunk/data32.inc +++ b/kernel/trunk/data32.inc @@ -379,8 +379,6 @@ _WinMapAddress rd 1 _WinMapSize rd 1 LFBAddress dd ? -Screen_Max_X dd ? -Screen_Max_Y dd ? SCR_MODE rw 2 @@ -425,8 +423,8 @@ cur_saved_base rd 1 cur.lock rd 1 ;1 - lock update, 2- hide cur.left rd 1 ;cursor clip box cur.top rd 1 -cur.right rd 1 -cur.bottom rd 1 +;cur.right rd 1 +;cur.bottom rd 1 cur.w rd 1 cur.h rd 1 diff --git a/kernel/trunk/gui/mouse.inc b/kernel/trunk/gui/mouse.inc index 33207f72cf..98cf7cce88 100644 --- a/kernel/trunk/gui/mouse.inc +++ b/kernel/trunk/gui/mouse.inc @@ -394,9 +394,9 @@ mouse._.move_handler: ;//////////////////////////////////////////////////////// mov [mouse.active_sys_window.new_box.left], eax @@: add eax, [mouse.active_sys_window.new_box.width] - cmp eax, [Screen_Max_X] + cmp eax, [_display.width] jl @f - sub eax, [Screen_Max_X] + sub eax, [_display.width] sub [mouse.active_sys_window.new_box.left], eax @@: mov eax, [mouse.active_sys_window.new_box.top] @@ -406,9 +406,9 @@ mouse._.move_handler: ;//////////////////////////////////////////////////////// mov [mouse.active_sys_window.new_box.top], eax @@: add eax, [mouse.active_sys_window.new_box.height] - cmp eax, [Screen_Max_Y] - jle .call_window_handler - sub eax, [Screen_Max_Y] + cmp eax, [_display.height] + jl .call_window_handler + sub eax, [_display.height] sub [mouse.active_sys_window.new_box.top], eax jmp .call_window_handler @@ -458,14 +458,14 @@ mouse._.move_handler: ;//////////////////////////////////////////////////////// mov [mouse.active_sys_window.new_box.height], eax @@: add eax, [mouse.active_sys_window.new_box.top] - cmp eax, [Screen_Max_Y] - jle .check_resize_e - sub eax, [Screen_Max_Y] + cmp eax, [_display.height] + jl .check_resize_e + sub eax, [_display.height] neg eax add [mouse.active_sys_window.new_box.height], eax - mov ecx, [Screen_Max_Y] + mov ecx, [_display.height] cmp ecx, eax - jge .check_resize_e + jg .check_resize_e mov [mouse.active_sys_window.new_box.height], ecx .check_resize_e: @@ -484,14 +484,14 @@ mouse._.move_handler: ;//////////////////////////////////////////////////////// mov [mouse.active_sys_window.new_box.width], eax @@: add eax, [mouse.active_sys_window.new_box.left] - cmp eax, [Screen_Max_X] - jle .call_window_handler - sub eax, [Screen_Max_X] + cmp eax, [_display.width] + jl .call_window_handler + sub eax, [_display.width] neg eax add [mouse.active_sys_window.new_box.width], eax - mov ecx, [Screen_Max_X] + mov ecx, [_display.width] cmp ecx, eax - jge .call_window_handler + jg .call_window_handler mov [mouse.active_sys_window.new_box.width], ecx .call_window_handler: diff --git a/kernel/trunk/gui/window.inc b/kernel/trunk/gui/window.inc index 0cff7fa1d2..2a4a9c4eed 100644 --- a/kernel/trunk/gui/window.inc +++ b/kernel/trunk/gui/window.inc @@ -215,7 +215,8 @@ align 4 syscall_display_settings.06: xor esi, esi - mov edi, [Screen_Max_X] + mov edi, [_display.width] + dec edi mov eax, ecx movsx ebx, ax sar eax, 16 @@ -239,7 +240,8 @@ align 4 ;-------------------------------------- align 4 .check_horizontal: - mov edi, [Screen_Max_Y] + mov edi, [_display.height] + dec edi mov eax, edx movsx ebx, ax sar eax, 16 @@ -300,8 +302,10 @@ align 4 syscall_display_settings._.calculate_whole_screen: xor eax, eax xor ebx, ebx - mov ecx, [Screen_Max_X] - mov edx, [Screen_Max_Y] + mov ecx, [_display.width] + mov edx, [_display.height] + dec ecx + dec edx jmp calculatescreen ;------------------------------------------------------------------------------ align 4 @@ -309,9 +313,11 @@ syscall_display_settings._.redraw_whole_screen: xor eax, eax mov [draw_limits.left], eax mov [draw_limits.top], eax - mov eax, [Screen_Max_X] + mov eax, [_display.width] + dec eax mov [draw_limits.right], eax - mov eax, [Screen_Max_Y] + mov eax, [_display.height] + dec eax mov [draw_limits.bottom], eax mov eax, window_data jmp redrawscreen @@ -590,12 +596,12 @@ align 4 mov eax, [edi + WDATA.box.left] add eax, [edi + WDATA.box.width] - mov ebx, [Screen_Max_X] + mov ebx, [_display.width] cmp eax, ebx - jle .fix_vertical + jl .fix_vertical mov eax, [edi + WDATA.box.width] sub eax, ebx - jle @f + jl @f mov [edi + WDATA.box.width], ebx ;-------------------------------------- align 4 @@ -607,12 +613,12 @@ align 4 .fix_vertical: mov eax, [edi + WDATA.box.top] add eax, [edi + WDATA.box.height] - mov ebx, [Screen_Max_Y] + mov ebx, [_display.height] cmp eax, ebx - jle .fix_client_box + jl .fix_client_box mov eax, [edi + WDATA.box.height] sub eax, ebx - jle @f + jl @f mov [edi + WDATA.box.height], ebx ;-------------------------------------- align 4 @@ -1718,9 +1724,9 @@ window._.check_window_position: ;////////////////////////////////////////////// mov ecx, [edi + WDATA.box.width] mov edx, [edi + WDATA.box.height] - mov esi, [Screen_Max_X] + mov esi, [_display.width] cmp ecx, esi - ja .fix_width_high + jae .fix_width_high ;-------------------------------------- align 4 .check_left: @@ -1728,13 +1734,13 @@ align 4 jl .fix_left_low add eax, ecx cmp eax, esi - jg .fix_left_high + jge .fix_left_high ;-------------------------------------- align 4 .check_height: - mov esi, [Screen_Max_Y] + mov esi, [_display.height] cmp edx, esi - ja .fix_height_high + jae .fix_height_high ;-------------------------------------- align 4 .check_top: @@ -1742,7 +1748,7 @@ align 4 jl .fix_top_low add ebx, edx cmp ebx, esi - jg .fix_top_high + jge .fix_top_high ;-------------------------------------- align 4 .exit: @@ -1992,8 +1998,7 @@ align 4 sub ebp, [ff_xsz] add ebp, [ff_x] - add ebp, [Screen_Max_X] ; screen.x - inc ebp + add ebp, [_display.width] ; screen.x inc ebx cmp ebx, [ff_ysz] jb .ff_new_y @@ -2030,9 +2035,9 @@ window._.window_activate: ;//////////////////////////////////////////////////// ; if type of current active window is 3 or 4, it must be redrawn mov ebx, [TASK_COUNT] - + ; DEBUGF 1, "K : TASK_COUNT (0x%x)\n", ebx - + movzx ebx, word[WIN_POS + ebx * 2] shl ebx, 5 add eax, window_data @@ -2062,13 +2067,13 @@ align 4 cmp eax, [TASK_COUNT] jae .move_self_up inc eax - + ; push ebx ; xor ebx,ebx ; mov bx,[WIN_STACK + eax * 2] ; DEBUGF 1, "K : DEC WIN_STACK (0x%x)\n",ebx ; pop ebx - + cmp [WIN_STACK + eax * 2], bx jbe .next_stack_window dec word[WIN_STACK + eax * 2] @@ -2156,7 +2161,7 @@ align 4 mov word[MOUSE_SCROLL_V], 0 pop ebx eax ret -;------------------------------------------------------------------------------ +;------------------------------------------------------------------------------ align 4 ;------------------------------------------------------------------------------ window._.check_window_draw: ;////////////////////////////////////////////////// diff --git a/kernel/trunk/hid/mousedrv.inc b/kernel/trunk/hid/mousedrv.inc index 9091e9119d..4c7783ca04 100644 --- a/kernel/trunk/hid/mousedrv.inc +++ b/kernel/trunk/hid/mousedrv.inc @@ -501,9 +501,10 @@ proc set_mouse_data stdcall uses edx, BtnState:dword, XMoving:dword, YMoving:dwo mul edx shr eax, 15 .check_x: - cmp ax, word[Screen_Max_X] + cmp ax, word[_display.width] jl .set_x - mov ax, word[Screen_Max_X] + mov ax, word[_display.width] + dec ax .set_x: mov [MOUSE_X], ax ;-------------------------------------- @@ -522,9 +523,10 @@ proc set_mouse_data stdcall uses edx, BtnState:dword, XMoving:dword, YMoving:dwo mul edx shr eax, 15 .check_y: - cmp ax, word[Screen_Max_Y] + cmp ax, word[_display.height] jl .set_y - mov ax, word[Screen_Max_Y] + mov ax, word[_display.height] + dec ax .set_y: mov [MOUSE_Y], ax ;-------------------------------------- diff --git a/kernel/trunk/kernel.asm b/kernel/trunk/kernel.asm index e7bcee97e6..34b823a95d 100644 --- a/kernel/trunk/kernel.asm +++ b/kernel/trunk/kernel.asm @@ -444,13 +444,11 @@ high_code: mov [_display.width], eax mov [display_width_standard], eax dec eax - mov [Screen_Max_X], eax mov [screen_workarea.right], eax movzx eax, word [BOOT_VARS+BOOT_Y_RES]; Y max mov [_display.height], eax mov [display_height_standard], eax dec eax - mov [Screen_Max_Y], eax mov [screen_workarea.bottom], eax movzx eax, word [BOOT_VARS+BOOT_VESA_MODE] ; screen mode mov dword [SCR_MODE], eax @@ -2406,10 +2404,10 @@ sysfn_centermouse: ; 18.15 = mouse centered ;* mouse centered - start code- Mario79 ;mouse_centered: ; push eax - mov eax, [Screen_Max_X] + mov eax, [_display.width] shr eax, 1 mov [MOUSE_X], ax - mov eax, [Screen_Max_Y] + mov eax, [_display.height] shr eax, 1 mov [MOUSE_Y], ax call wakeup_osloop @@ -2451,11 +2449,11 @@ sysfn_mouse_acceleration: ; 18.19 = set/get mouse features ; cmp ecx,4 ; set mouse pointer position dec ecx jnz .set_mouse_button - cmp dx, word[Screen_Max_Y] - ja .end + cmp dx, word[_display.height] + jae .end rol edx, 16 - cmp dx, word[Screen_Max_X] - ja .end + cmp dx, word[_display.width] + jae .end mov [MOUSE_X], edx mov [mouse_active], 1 call wakeup_osloop @@ -2882,8 +2880,10 @@ nosb8: jnz nosb9 ; ecx = [left]*65536 + [right] ; edx = [top]*65536 + [bottom] - mov eax, [Screen_Max_X] - mov ebx, [Screen_Max_Y] + mov eax, [_display.width] + mov ebx, [_display.height] + dec eax + dec ebx ; check [right] cmp cx, ax ja .exit @@ -2935,8 +2935,10 @@ force_redraw_background: and [draw_data+32 + RECT.left], 0 and [draw_data+32 + RECT.top], 0 push eax ebx - mov eax, [Screen_Max_X] - mov ebx, [Screen_Max_Y] + mov eax, [_display.width] + mov ebx, [_display.height] + dec eax + dec ebx mov [draw_data+32 + RECT.right], eax mov [draw_data+32 + RECT.bottom], ebx pop ebx eax @@ -3298,9 +3300,11 @@ sys_redrawstat: add edx, draw_data - CURRENT_TASK mov [edx + RECT.left], 0 mov [edx + RECT.top], 0 - mov eax, [Screen_Max_X] + mov eax, [_display.width] + dec eax mov [edx + RECT.right], eax - mov eax, [Screen_Max_Y] + mov eax, [_display.height] + dec eax mov [edx + RECT.bottom], eax srl1: @@ -4793,9 +4797,9 @@ endg jnz @f mov word [msg_board_pos+2], (42*6) add word [msg_board_pos], 10 - mov ax, word [Screen_Max_Y] + mov ax, word [_display.width] cmp word [msg_board_pos], ax - jbe @f + jb @f mov word [msg_board_pos], 10 @@: ; // end if @@ -5012,10 +5016,9 @@ sys_gs: ; direct screen access .1: ; resolution - mov eax, [Screen_Max_X] + mov eax, [_display.width] shl eax, 16 - mov ax, word [Screen_Max_Y] - add eax, 0x00010001 + mov ax, word [_display.height] mov [esp+32], eax ret .2: ; bits per pixel @@ -5100,9 +5103,11 @@ syscall_drawrect: ; DrawRect align 4 syscall_getscreensize: ; GetScreenSize - mov ax, word [Screen_Max_X] + mov ax, word [_display.width] + dec ax shl eax, 16 - mov ax, word [Screen_Max_Y] + mov ax, word [_display.height] + dec ax mov [esp + 32], eax ret ;----------------------------------------------------------------------------- @@ -5178,10 +5183,10 @@ syscall_cdaudio: ;----------------------------------------------------------------------------- align 4 syscall_getpixel_WinMap: ; GetPixel WinMap - cmp ebx, [Screen_Max_X] - jbe @f - cmp ecx, [Screen_Max_Y] - jbe @f + cmp ebx, [_display.width] + jb @f + cmp ecx, [_display.height] + jb @f xor eax, eax jmp .store ;-------------------------------------- @@ -5198,8 +5203,7 @@ align 4 ;----------------------------------------------------------------------------- align 4 syscall_getpixel: ; GetPixel - mov ecx, [Screen_Max_X] - inc ecx + mov ecx, [_display.width] xor edx, edx mov eax, ebx div ecx @@ -5444,8 +5448,6 @@ set_screen: pushfd cli - mov [Screen_Max_X], eax - mov [Screen_Max_Y], edx mov [_display.pitch], ecx mov [screen_workarea.right], eax @@ -5487,8 +5489,10 @@ set_screen: call repos_windows xor eax, eax xor ebx, ebx - mov ecx, [Screen_Max_X] - mov edx, [Screen_Max_Y] + mov ecx, [_display.width] + mov edx, [_display.height] + dec ecx + dec edx call calculatescreen pop edi pop esi diff --git a/kernel/trunk/video/cursors.inc b/kernel/trunk/video/cursors.inc index 076a4ce7d5..d1acb7183b 100644 --- a/kernel/trunk/video/cursors.inc +++ b/kernel/trunk/video/cursors.inc @@ -305,7 +305,7 @@ align 4 align 4 .end: mov [redrawmouse_unconditional], 1 - call __sys_draw_pointer + call __sys_draw_pointer ret endp ;------------------------------------------------------------------------------ @@ -656,25 +656,21 @@ proc move_cursor_24 stdcall, hcursor:dword, x:dword, y:dword add edx, eax mov [cur_saved_base], edx - cmp ebx, [Screen_Max_X] - jbe @F - mov ebx, [Screen_Max_X] + cmp ebx, [_display.width] + jb @F + mov ebx, [_display.width] ;-------------------------------------- align 4 @@: - cmp edi, [Screen_Max_Y] - jbe @F - mov edi, [Screen_Max_Y] + cmp edi, [_display.height] + jb @F + mov edi, [_display.height] ;-------------------------------------- align 4 @@: - mov [cur.right], ebx - mov [cur.bottom], edi sub ebx, [x] sub edi, [y] - inc ebx - inc edi sub ebx, [_dx] sub edi, [_dy] @@ -774,25 +770,20 @@ proc move_cursor_32 stdcall, hcursor:dword, x:dword, y:dword lea edx, [LFB_BASE+eax+ecx*4] mov [cur_saved_base], edx - cmp ebx, [Screen_Max_X] - jbe @F - mov ebx, [Screen_Max_X] + cmp ebx, [_display.width] + jb @F + mov ebx, [_display.width] ;-------------------------------------- align 4 @@: - cmp edi, [Screen_Max_Y] - jbe @F - mov edi, [Screen_Max_Y] + cmp edi, [_display.height] + jb @F + mov edi, [_display.height] ;-------------------------------------- align 4 @@: - mov [cur.right], ebx - mov [cur.bottom], edi - sub ebx, [x] sub edi, [y] - inc ebx - inc edi sub ebx, [_dx] sub edi, [_dy] @@ -889,25 +880,20 @@ proc move_cursor_16 stdcall, hcursor:dword, x:dword, y:dword lea edx, [LFB_BASE+eax+ecx*2] mov [cur_saved_base], edx - cmp ebx, [Screen_Max_X] - jbe @F - mov ebx, [Screen_Max_X] + cmp ebx, [_display.width] + jb @F + mov ebx, [_display.width] ;-------------------------------------- align 4 @@: - cmp edi, [Screen_Max_Y] - jbe @F - mov edi, [Screen_Max_Y] + cmp edi, [_display.height] + jb @F + mov edi, [_display.height] ;-------------------------------------- align 4 @@: - mov [cur.right], ebx - mov [cur.bottom], edi - sub ebx, [x] sub edi, [y] - inc ebx - inc edi sub ebx, [_dx] sub edi, [_dy] diff --git a/kernel/trunk/video/vesa20.inc b/kernel/trunk/video/vesa20.inc index 492f5a4787..b808a65b11 100644 --- a/kernel/trunk/video/vesa20.inc +++ b/kernel/trunk/video/vesa20.inc @@ -236,8 +236,7 @@ end virtual add eax, [putimg.arg_0] mov [putimg.line_increment], eax ; winmap new line increment - mov eax, [Screen_Max_X] - inc eax + mov eax, [_display.width] sub eax, [putimg.real_sx] mov [putimg.winmap_newline], eax ; screen new line increment @@ -876,10 +875,10 @@ align 4 __sys_putpixel: pushad - cmp [Screen_Max_X], eax - jb .exit - cmp [Screen_Max_Y], ebx - jb .exit + cmp eax, [_display.width] + jge .exit + cmp ebx, [_display.height] + jge .exit test edi, 1 ; force ? jnz .forced @@ -1441,9 +1440,8 @@ end virtual .end_y: mov [drbar.real_sy], ebx ; line_inc_map - mov eax, [Screen_Max_X] + mov eax, [_display.width] sub eax, [drbar.real_sx] - inc eax mov [drbar.line_inc_map], eax ; line_inc_scr mov eax, [drbar.real_sx] @@ -2149,20 +2147,20 @@ vesa20_drawbackground_stretch: mov eax, [BgrDataWidth] dec eax xor edx, edx - div dword [Screen_Max_X] + div dword [screen_workarea.right] push eax ; high xor eax, eax - div dword [Screen_Max_X] + div dword [screen_workarea.right] push eax ; low ; the same for height mov eax, [BgrDataHeight] dec eax xor edx, edx - div dword [Screen_Max_Y] + div dword [screen_workarea.bottom] push eax ; high xor eax, eax - div dword [Screen_Max_Y] + div dword [screen_workarea.bottom] push eax ; low ; External loop for all y from start to end @@ -2323,8 +2321,7 @@ vesa20_drawbackground_stretch: ; advance edi, ebp to next scan line sub eax, [draw_data+32+RECT.left] sub ebp, eax - add ebp, [Screen_Max_X] - add ebp, 1 + add ebp, [_display.width] sub edi, eax sub edi, eax cmp byte [_display.bytes_per_pixel], 2 @@ -2356,8 +2353,7 @@ vesa20_drawbackground_stretch: push edi mov esi, bgr_next_line mov edi, bgr_cur_line - mov ecx, [Screen_Max_X] - inc ecx + mov ecx, [_display.width] rep movsd jmp bgr_resmooth1