forked from KolibriOS/kolibrios
VESA draw some speedup (line, points, text, numbers)
git-svn-id: svn://kolibrios.org@2438 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
1fca7a07cb
commit
4832ce7a33
@ -189,6 +189,7 @@ TASK_BASE equ (OS_BASE+0x0003010)
|
|||||||
TASK_DATA equ (OS_BASE+0x0003020)
|
TASK_DATA equ (OS_BASE+0x0003020)
|
||||||
TASK_EVENT equ (OS_BASE+0x0003020)
|
TASK_EVENT equ (OS_BASE+0x0003020)
|
||||||
|
|
||||||
|
d_width_calc_area equ (OS_BASE+0x0005000)
|
||||||
mouseunder equ (OS_BASE+0x0006900)
|
mouseunder equ (OS_BASE+0x0006900)
|
||||||
CDDataBuf equ (OS_BASE+0x0007000)
|
CDDataBuf equ (OS_BASE+0x0007000)
|
||||||
FLOPPY_BUFF equ (OS_BASE+0x0008000)
|
FLOPPY_BUFF equ (OS_BASE+0x0008000)
|
||||||
|
@ -402,6 +402,8 @@ high_code:
|
|||||||
mul [_display.height]
|
mul [_display.height]
|
||||||
mov [_WinMapSize], eax
|
mov [_WinMapSize], eax
|
||||||
|
|
||||||
|
call calculate_fast_getting_offset_for_WinMapAddress
|
||||||
|
|
||||||
mov esi, BOOT_VAR+0x9080
|
mov esi, BOOT_VAR+0x9080
|
||||||
movzx ecx, byte [esi-1]
|
movzx ecx, byte [esi-1]
|
||||||
mov [NumBiosDisks], ecx
|
mov [NumBiosDisks], ecx
|
||||||
@ -4793,7 +4795,22 @@ read_from_hd: ; Read from hd - fn not in use
|
|||||||
|
|
||||||
paleholder:
|
paleholder:
|
||||||
ret
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
align 4
|
||||||
|
calculate_fast_getting_offset_for_WinMapAddress:
|
||||||
|
; calculate data area for fast getting offset to _WinMapAddress
|
||||||
|
mov eax, [_display.width]
|
||||||
|
mov ecx, [_display.height]
|
||||||
|
inc ecx
|
||||||
|
mov edi, d_width_calc_area
|
||||||
|
cld
|
||||||
|
@@:
|
||||||
|
stosd
|
||||||
|
add eax, [_display.width]
|
||||||
|
dec ecx
|
||||||
|
jnz @r
|
||||||
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
align 4
|
align 4
|
||||||
set_screen:
|
set_screen:
|
||||||
cmp eax, [Screen_Max_X]
|
cmp eax, [Screen_Max_X]
|
||||||
@ -4830,6 +4847,8 @@ set_screen:
|
|||||||
test eax, eax
|
test eax, eax
|
||||||
jz .epic_fail
|
jz .epic_fail
|
||||||
|
|
||||||
|
call calculate_fast_getting_offset_for_WinMapAddress
|
||||||
|
|
||||||
popad
|
popad
|
||||||
|
|
||||||
call repos_windows
|
call repos_windows
|
||||||
|
@ -62,7 +62,7 @@
|
|||||||
; 3c dword cpu usage in cpu timer tics
|
; 3c dword cpu usage in cpu timer tics
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
; 5000 -> 68FF free (6k6)
|
; 5000 -> 68FF display width fast calc area (6k6)
|
||||||
; 6900 -> 6EFF saved picture under mouse pointer (1k5)
|
; 6900 -> 6EFF saved picture under mouse pointer (1k5)
|
||||||
;
|
;
|
||||||
; 6F00 -> 6FFF free (256)
|
; 6F00 -> 6FFF free (256)
|
||||||
|
@ -556,14 +556,10 @@ __sys_putpixel:
|
|||||||
jnz .forced
|
jnz .forced
|
||||||
|
|
||||||
; not forced:
|
; not forced:
|
||||||
|
mov edx, [d_width_calc_area + ebx*4]
|
||||||
push eax
|
add edx, [_WinMapAddress]
|
||||||
mov edx, [_display.width]; screen x size
|
|
||||||
imul edx, ebx
|
|
||||||
add eax, [_WinMapAddress]
|
|
||||||
movzx edx, byte [eax+edx]
|
movzx edx, byte [eax+edx]
|
||||||
cmp edx, [CURRENT_TASK]
|
cmp edx, [CURRENT_TASK]
|
||||||
pop eax
|
|
||||||
jne .exit
|
jne .exit
|
||||||
;--------------------------------------
|
;--------------------------------------
|
||||||
align 4
|
align 4
|
||||||
|
Loading…
Reference in New Issue
Block a user