Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 468 → Rev 469

/kernel/trunk/kernel.asm
500,12 → 500,22
mov [graph_data_l+4],al
mov [graph_data_l+7],ah
 
 
mov [CURRENT_TASK],dword 1
mov [TASK_COUNT],dword 1
mov [TASK_BASE],dword TASK_DATA
mov [current_slot], SLOT_BASE+256
 
; set background
xor eax,eax
inc eax
mov [display_data-12],eax
mov [display_data-8],eax
mov [display_data-4],eax
mov [mem_BACKGROUND],4095
stdcall kernel_alloc, [mem_BACKGROUND]
mov [img_background], eax
 
 
;!!!!!!!!!!!!!!!!!!!!!!!!!!
include 'detect/disks.inc'
;!!!!!!!!!!!!!!!!!!!!!!!!!!
2296,8 → 2306,37
mov [display_data-8],ebx
mov [display_data-4],ecx
; mov [bgrchanged],1
 
pushad
; return memory for old background
stdcall kernel_free, [img_background]
; calculate RAW size
xor eax,eax
inc eax
cmp [display_data-8],eax
jae @f
mov [display_data-8],eax
@@:
cmp [display_data-4],eax
jae @f
mov [display_data-4],eax
@@:
mov eax,[display_data-8]
imul eax,[display_data-4]
inc eax
imul eax,3
mov [mem_BACKGROUND],eax
; get memory for new background
stdcall kernel_alloc, [mem_BACKGROUND]
test eax, eax
jz .exit_mem
mov [img_background], eax
.exit_mem:
popad
 
sbgrr:
ret
 
nosb1:
 
cmp eax,2 ; SET PIXEL
2309,7 → 2348,12
and edx,0xFF000000 ;255*256*256*256
and ecx,0x00FFFFFF ;255*256*256+255*256+255
add edx,ecx
mov [ebx+IMG_BACKGROUND],edx
 
; mov [ebx+IMG_BACKGROUND],edx
push eax
mov eax,[img_background]
mov [ebx+eax],edx
pop eax
; mov [bgrchanged],1
ret
nosb2:
2342,29 → 2386,17
; bughere
mov edi, [TASK_BASE]
add ebx, [edi+TASKDATA.mem_start]
; mov esi, ebx
; mov edi, ecx
mov eax, ebx
mov ebx, ecx
add ecx, edx
cmp ecx, 0x160000-16
ja .fin
; add edi, 0x300000
add ebx, IMG_BACKGROUND
add ebx, [img_background] ;IMG_BACKGROUND
mov ecx, edx
cmp ecx, 0x160000-16
ja .fin
; mov [bgrchanged],1
; cld
; rep movsb
call memmove
.fin:
ret
nosb5:
 
ret
 
 
align 4
 
sys_getbackground:
2380,10 → 2412,13
 
cmp eax,2 ; PIXEL
jnz nogb2
mov edx,0x160000-16
cmp edx,ebx
jbe nogb2
mov eax, [ebx+IMG_BACKGROUND]
; mov edx,0x160000-16
; cmp edx,ebx
; jbe nogb2
; mov eax, [ebx+IMG_BACKGROUND]
mov eax,[img_background]
mov eax,[ebx+eax]
 
and eax, 0xFFFFFF
mov [esp+36],eax
ret
3533,12 → 3568,12
 
; all black
 
mov [display_data-8],dword 4 ; size x
mov [display_data-4],dword 2 ; size y
; mov [display_data-8],dword 4 ; size x
; mov [display_data-4],dword 2 ; size y
 
mov edi, IMG_BACKGROUND ; set background to black
mov edi, [img_background] ;IMG_BACKGROUND ; set background to black
xor eax, eax
mov ecx, 0x0fff00 / 4
mov ecx, 1023 ;0x0fff00 / 4
cld
rep stosd