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_EVENT equ (OS_BASE+0x0003020)
|
||||
|
||||
d_width_calc_area equ (OS_BASE+0x0005000)
|
||||
mouseunder equ (OS_BASE+0x0006900)
|
||||
CDDataBuf equ (OS_BASE+0x0007000)
|
||||
FLOPPY_BUFF equ (OS_BASE+0x0008000)
|
||||
|
@ -402,6 +402,8 @@ high_code:
|
||||
mul [_display.height]
|
||||
mov [_WinMapSize], eax
|
||||
|
||||
call calculate_fast_getting_offset_for_WinMapAddress
|
||||
|
||||
mov esi, BOOT_VAR+0x9080
|
||||
movzx ecx, byte [esi-1]
|
||||
mov [NumBiosDisks], ecx
|
||||
@ -4793,7 +4795,22 @@ read_from_hd: ; Read from hd - fn not in use
|
||||
|
||||
paleholder:
|
||||
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
|
||||
set_screen:
|
||||
cmp eax, [Screen_Max_X]
|
||||
@ -4830,6 +4847,8 @@ set_screen:
|
||||
test eax, eax
|
||||
jz .epic_fail
|
||||
|
||||
call calculate_fast_getting_offset_for_WinMapAddress
|
||||
|
||||
popad
|
||||
|
||||
call repos_windows
|
||||
|
@ -62,7 +62,7 @@
|
||||
; 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)
|
||||
;
|
||||
; 6F00 -> 6FFF free (256)
|
||||
|
@ -556,14 +556,10 @@ __sys_putpixel:
|
||||
jnz .forced
|
||||
|
||||
; not forced:
|
||||
|
||||
push eax
|
||||
mov edx, [_display.width]; screen x size
|
||||
imul edx, ebx
|
||||
add eax, [_WinMapAddress]
|
||||
mov edx, [d_width_calc_area + ebx*4]
|
||||
add edx, [_WinMapAddress]
|
||||
movzx edx, byte [eax+edx]
|
||||
cmp edx, [CURRENT_TASK]
|
||||
pop eax
|
||||
jne .exit
|
||||
;--------------------------------------
|
||||
align 4
|
||||
|
Loading…
Reference in New Issue
Block a user