Subversion Repositories Kolibri OS

Rev

Rev 465 | Blame | Last modification | View Log | Download | RSS feed

  1. $Revision: 472 $
  2. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  3. ;;                                                              ;;
  4. ;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;;
  5. ;; Distributed under terms of the GNU General Public License    ;;
  6. ;;                                                              ;;
  7. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  8.  
  9. ;
  10. ; Call of videomode driver's functions
  11. ;
  12. ; (Add in System function 21 (and/or 26) as a subfunction 13)
  13. ;
  14. ; Author: Trans
  15. ; Date:  19.07.2003
  16. ;
  17. ; Include in MeOS kernel and compile with FASM
  18. ;
  19.  
  20. uglobal
  21.   old_screen_width  dd ?
  22.   old_screen_height dd ?
  23. endg
  24.  
  25.      cmp  eax,13                 ; CALL VIDEOMODE DRIVER FUNCTIONS
  26.      jne  .no_vmode_drv_access
  27.         pushd   [ScreenWidth] [ScreenHeight]
  28.         popd    [old_screen_height] [old_screen_width]
  29.      or   eax,-1                 ; If driver is absent then eax does not change
  30.      call (VMODE_BASE+0x100)     ; Entry point of video driver
  31.      mov  [esp+36],eax
  32.      mov  [esp+24],ebx
  33.      mov  [esp+32],ecx
  34. ;    mov  [esp+28],edx
  35.         mov     eax,[old_screen_width]
  36.         mov     ebx,[old_screen_height]
  37.         sub     eax,[ScreenWidth]
  38.         jnz     @f
  39.         sub     ebx,[ScreenHeight]
  40.         jz      .resolution_wasnt_changed
  41.         jmp     .lp1
  42.     @@: sub     ebx,[ScreenHeight]
  43.   .lp1: sub     [screen_workarea.right],eax
  44.         sub     [screen_workarea.bottom],ebx
  45.  
  46.         call    repos_windows
  47.         mov     eax, 0
  48.         mov     ebx, 0
  49.         mov     ecx, [ScreenWidth]
  50.         mov     edx, [ScreenHeight]
  51.         call    calculatescreen
  52.  
  53.   .resolution_wasnt_changed:
  54.      ret
  55.    .no_vmode_drv_access:
  56.