Subversion Repositories Kolibri OS

Rev

Rev 753 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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