Subversion Repositories Kolibri OS

Rev

Rev 49 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 49 Rev 112
1
;
1
;
2
; Call of videomode driver's functions
2
; Call of videomode driver's functions
3
;
3
;
4
; (Add in System function 21 (and/or 26) as a subfunction 13)
4
; (Add in System function 21 (and/or 26) as a subfunction 13)
5
;
5
;
6
; Author: Trans
6
; Author: Trans
7
; Date:  19.07.2003
7
; Date:  19.07.2003
8
;
8
;
9
; Include in MeOS kernel and compile with FASM
9
; Include in MeOS kernel and compile with FASM
10
;
10
;
11
 
11
 
12
uglobal
12
uglobal
13
  old_screen_width  dd ?
13
  old_screen_width  dd ?
14
  old_screen_height dd ?
14
  old_screen_height dd ?
15
endg
15
endg
16
 
16
 
17
     cmp  eax,13                 ; CALL VIDEOMODE DRIVER FUNCTIONS
17
     cmp  eax,13                 ; CALL VIDEOMODE DRIVER FUNCTIONS
18
     jne  .no_vmode_drv_access
18
     jne  .no_vmode_drv_access
19
	pushd	[0x0000fe00] [0x0000fe04]
19
	pushd	[0x0000fe00] [0x0000fe04]
20
	popd	[old_screen_height] [old_screen_width]
20
	popd	[old_screen_height] [old_screen_width]
21
     or   eax,-1                 ; If driver is absent then eax does not change
21
     or   eax,-1                 ; If driver is absent then eax does not change
22
     call 0x760100               ; Entry point of video driver
22
     call 0x760100               ; Entry point of video driver
23
     mov  [esp+36],eax
23
     mov  [esp+36],eax
24
     mov  [esp+24],ebx
24
     mov  [esp+24],ebx
25
     mov  [esp+32],ecx
25
     mov  [esp+32],ecx
26
;    mov  [esp+28],edx
26
;    mov  [esp+28],edx
27
	mov	eax,[old_screen_width]
27
	mov	eax,[old_screen_width]
28
	mov	ebx,[old_screen_height]
28
	mov	ebx,[old_screen_height]
29
	sub	eax,[0x0000fe00]
29
	sub	eax,[0x0000fe00]
30
	jnz	@f
30
	jnz	@f
31
	sub	ebx,[0x0000fe04]
31
	sub	ebx,[0x0000fe04]
32
	jz	.resolution_wasnt_changed
32
	jz	.resolution_wasnt_changed
33
	jmp	.lp1
33
	jmp	.lp1
34
    @@: sub	ebx,[0x0000fe04]
34
    @@: sub	ebx,[0x0000fe04]
35
  .lp1: sub	[screen_workarea.right],eax
35
  .lp1: sub	[screen_workarea.right],eax
36
	sub	[screen_workarea.bottom],ebx
36
	sub	[screen_workarea.bottom],ebx
37
 
37
 
38
	call	repos_windows
38
	call	repos_windows
-
 
39
        mov     eax, 0
-
 
40
        mov     ebx, 0
-
 
41
        mov     ecx, [0xfe00]
-
 
42
        mov     edx, [0xfe04]
39
	call	calculatescreen
43
	call	calculatescreen
40
 
44
 
41
  .resolution_wasnt_changed:
45
  .resolution_wasnt_changed:
42
     ret
46
     ret
43
   .no_vmode_drv_access:
47
   .no_vmode_drv_access: