0,0 → 1,58 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;; ;; |
;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;; |
;; Distributed under terms of the GNU General Public License ;; |
;; ;; |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
$Revision$ |
|
|
; |
; Call of videomode driver's functions |
; |
; (Add in System function 21 (and/or 26) as a subfunction 13) |
; |
; Author: Trans |
; Date: 19.07.2003 |
; |
; Include in MeOS kernel and compile with FASM |
; |
|
uglobal |
old_screen_width dd ? |
old_screen_height dd ? |
endg |
|
; cmp eax,13 ; CALL VIDEOMODE DRIVER FUNCTIONS |
dec ebx |
jnz .no_vmode_drv_access |
pushd [Screen_Max_X] [Screen_Max_Y] |
popd [old_screen_height] [old_screen_width] |
or eax,-1 ; If driver is absent then eax does not change |
call (VMODE_BASE+0x100) ; Entry point of video driver |
mov [esp+36-4],eax |
mov [esp+24-4],ebx |
mov [esp+32-4],ecx |
; mov [esp+28],edx |
mov eax,[old_screen_width] |
mov ebx,[old_screen_height] |
sub eax,[Screen_Max_X] |
jnz @f |
sub ebx,[Screen_Max_Y] |
jz .resolution_wasnt_changed |
jmp .lp1 |
@@: sub ebx,[Screen_Max_Y] |
.lp1: sub [screen_workarea.right],eax |
sub [screen_workarea.bottom],ebx |
|
call repos_windows |
xor eax,eax |
xor ebx,ebx |
mov ecx, [Screen_Max_X] |
mov edx, [Screen_Max_Y] |
call calculatescreen |
|
.resolution_wasnt_changed: |
ret |
.no_vmode_drv_access: |
Property changes: |
Added: svn:keywords |
+Revision |
\ No newline at end of property |