Subversion Repositories Kolibri OS

Rev

Rev 752 | Rev 755 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 752 Rev 753
Line 53... Line 53...
53
;;
53
;;
54
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
54
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 55... Line 55...
55
 
55
 
Line 56... Line 56...
56
include 'macros.inc'
56
include 'macros.inc'
Line 57... Line 57...
57
 
57
 
Line 58... Line 58...
58
$Revision: 752 $
58
$Revision: 753 $
Line 342... Line 342...
342
;        mov   [0xF604],byte 1  ;al
342
;        mov   [0xF604],byte 1  ;al
343
	mov	al, [BOOT_VAR+0x901F]	; DMA access
343
	mov	al, [BOOT_VAR+0x901F]	; DMA access
344
	mov	[allow_dma_access], al
344
	mov	[allow_dma_access], al
345
	mov   al,[BOOT_VAR+0x9000]	  ; bpp
345
	mov   al,[BOOT_VAR+0x9000]	  ; bpp
346
	mov   [ScreenBPP],al
346
	mov   [ScreenBPP],al
-
 
347
 
-
 
348
        xchg bx, bx
-
 
349
 
347
	movzx eax,word [BOOT_VAR+0x900A]  ; X max
350
	movzx eax,word [BOOT_VAR+0x900A]  ; X max
348
	dec   eax
351
	dec   eax
349
	mov   [ScreenWidth],eax
352
        mov   [Screen_Max_X],eax
350
	mov   [screen_workarea.right],eax
353
	mov   [screen_workarea.right],eax
351
	movzx eax,word [BOOT_VAR+0x900C]  ; Y max
354
	movzx eax,word [BOOT_VAR+0x900C]  ; Y max
352
	dec   eax
355
	dec   eax
353
	mov   [ScreenHeight],eax
356
        mov   [Screen_Max_Y],eax
354
	mov   [screen_workarea.bottom],eax
357
	mov   [screen_workarea.bottom],eax
355
	movzx eax,word [BOOT_VAR+0x9008]  ; screen mode
358
	movzx eax,word [BOOT_VAR+0x9008]  ; screen mode
356
	mov   [SCR_MODE],eax
359
	mov   [SCR_MODE],eax
357
	mov   eax,[BOOT_VAR+0x9014]	  ; Vesa 1.2 bnk sw add
360
	mov   eax,[BOOT_VAR+0x9014]	  ; Vesa 1.2 bnk sw add
358
	mov   [BANK_SWITCH],eax
361
	mov   [BANK_SWITCH],eax
Line 1124... Line 1127...
1124
	ret
1127
	ret
Line 1125... Line 1128...
1125
 
1128
 
1126
;* mouse centered - start code- Mario79
1129
;* mouse centered - start code- Mario79
1127
mouse_centered:
1130
mouse_centered:
1128
	push  eax
1131
	push  eax
1129
	mov   eax,[ScreenWidth]
1132
        mov   eax,[Screen_Max_X]
1130
	shr   eax,1
1133
	shr   eax,1
1131
	mov   [MOUSE_X],ax
1134
	mov   [MOUSE_X],ax
1132
	mov   eax,[ScreenHeight]
1135
        mov   eax,[Screen_Max_Y]
1133
	shr   eax,1
1136
	shr   eax,1
1134
	mov   [MOUSE_Y],ax
1137
	mov   [MOUSE_Y],ax
1135
	pop   eax
1138
	pop   eax
1136
	ret
1139
	ret
Line 2557... Line 2560...
2557
 
2560
 
2558
force_redraw_background:
2561
force_redraw_background:
2559
    mov   [draw_data+32 + RECT.left],dword 0
2562
    mov   [draw_data+32 + RECT.left],dword 0
2560
    mov   [draw_data+32 + RECT.top],dword 0
2563
    mov   [draw_data+32 + RECT.top],dword 0
2561
    push  eax ebx
2564
    push  eax ebx
2562
    mov   eax,[ScreenWidth]
2565
    mov   eax,[Screen_Max_X]
2563
    mov   ebx,[ScreenHeight]
2566
    mov   ebx,[Screen_Max_Y]
2564
    mov   [draw_data+32 + RECT.right],eax
2567
    mov   [draw_data+32 + RECT.right],eax
2565
    mov   [draw_data+32 + RECT.bottom],ebx
2568
    mov   [draw_data+32 + RECT.bottom],ebx
2566
    pop   ebx eax
2569
    pop   ebx eax
2567
    mov   byte [REDRAW_BACKGROUND], 1
2570
    mov   byte [REDRAW_BACKGROUND], 1
Line 2878... Line 2881...
2878
 
2881
 
2879
	mov	edx, [TASK_BASE]      ; return whole screen draw area for this app
2882
	mov	edx, [TASK_BASE]      ; return whole screen draw area for this app
2880
	add	edx, draw_data - CURRENT_TASK
2883
	add	edx, draw_data - CURRENT_TASK
2881
	mov	[edx + RECT.left], 0
2884
	mov	[edx + RECT.left], 0
2882
	mov	[edx + RECT.top], 0
2885
	mov	[edx + RECT.top], 0
2883
	mov	eax, [ScreenWidth]
2886
        mov     eax, [Screen_Max_X]
2884
	mov	[edx + RECT.right], eax
2887
	mov	[edx + RECT.right], eax
2885
	mov	eax, [ScreenHeight]
2888
        mov     eax, [Screen_Max_Y]
Line 2886... Line 2889...
2886
	mov	[edx + RECT.bottom], eax
2889
	mov	[edx + RECT.bottom], eax
2887
 
2890
 
2888
	mov	edi, [TASK_BASE]
2891
	mov	edi, [TASK_BASE]
Line 3481... Line 3484...
3481
; check if pixel is allowed to be drawn
3484
; check if pixel is allowed to be drawn
Line 3482... Line 3485...
3482
 
3485
 
3483
checkpixel:
3486
checkpixel:
Line 3484... Line 3487...
3484
	push eax edx
3487
	push eax edx
3485
 
3488
 
3486
	mov  edx,[ScreenWidth]	   ; screen x size
3489
        mov  edx,[Screen_Max_X]     ; screen x size
3487
	inc  edx
3490
	inc  edx
Line 3488... Line 3491...
3488
	imul edx, ebx
3491
	imul edx, ebx
Line 3542... Line 3545...
3542
    or	  [edi+SLOT_BASE+APPDATA.event_mask], 16
3545
    or	  [edi+SLOT_BASE+APPDATA.event_mask], 16
3543
    loop  set_bgr_event
3546
    loop  set_bgr_event
3544
no_set_bgr_event:
3547
no_set_bgr_event:
3545
;    mov   [draw_data+32 + RECT.left],dword 0
3548
;    mov   [draw_data+32 + RECT.left],dword 0
3546
;    mov   [draw_data+32 + RECT.top],dword 0
3549
;    mov   [draw_data+32 + RECT.top],dword 0
3547
;    mov   eax,[ScreenWidth]
3550
;    mov   eax,[Screen_Max_X]
3548
;    mov   ebx,[ScreenHeight]
3551
;    mov   ebx,[Screen_Max_Y]
3549
;    mov   [draw_data+32 + RECT.right],eax
3552
;    mov   [draw_data+32 + RECT.right],eax
3550
;    mov   [draw_data+32 + RECT.bottom],ebx
3553
;    mov   [draw_data+32 + RECT.bottom],ebx
3551
    call  drawbackground
3554
    call  drawbackground
3552
    mov   [REDRAW_BACKGROUND],byte 0
3555
    mov   [REDRAW_BACKGROUND],byte 0
3553
    mov   [MOUSE_BACKGROUND],byte 0
3556
    mov   [MOUSE_BACKGROUND],byte 0
Line 4854... Line 4857...
4854
 
4857
 
Line 4855... Line 4858...
4855
sys_gs: 			; direct screen access
4858
sys_gs: 			; direct screen access
4856
 
4859
 
4857
     cmp  eax,1 		; resolution
4860
     cmp  eax,1 		; resolution
4858
     jne  no_gs1
4861
     jne  no_gs1
4859
     mov  eax,[ScreenWidth]
4862
     mov  eax,[Screen_Max_X]
4860
     shl  eax,16
4863
     shl  eax,16
4861
     mov  ax,[ScreenHeight]
4864
     mov  ax,[Screen_Max_Y]
4862
     add  eax,0x00010001
4865
     add  eax,0x00010001
4863
     mov  [esp+36],eax
4866
     mov  [esp+36],eax
Line 4968... Line 4971...
4968
.drectr:
4971
.drectr:
4969
	ret
4972
	ret
Line 4970... Line 4973...
4970
 
4973
 
4971
align 4
4974
align 4
4972
syscall_getscreensize:			; GetScreenSize
4975
syscall_getscreensize:			; GetScreenSize
4973
	mov	ax, [ScreenWidth]
4976
        mov     ax, [Screen_Max_X]
4974
	shl	eax, 16
4977
	shl	eax, 16
4975
	mov	ax, [ScreenHeight]
4978
        mov     ax, [Screen_Max_Y]
4976
	mov	[esp + 32], eax
4979
	mov	[esp + 32], eax
Line 4977... Line 4980...
4977
	ret
4980
	ret
Line 5058... Line 5061...
5058
     ret
5061
     ret
Line 5059... Line 5062...
5059
 
5062
 
Line 5060... Line 5063...
5060
align 4
5063
align 4
5061
 
5064
 
5062
syscall_getpixel:			; GetPixel
5065
syscall_getpixel:			; GetPixel
5063
     mov   ecx, [ScreenWidth]
5066
     mov   ecx, [Screen_Max_X]
5064
     inc   ecx
5067
     inc   ecx
5065
     xor   edx, edx
5068
     xor   edx, edx
5066
     mov   eax, ebx
5069
     mov   eax, ebx