From 2e10d147589d4c0fe43d04e464bc27d5a3caaeb8 Mon Sep 17 00:00:00 2001 From: IgorA Date: Tue, 15 Mar 2016 11:39:00 +0000 Subject: [PATCH] small optimize git-svn-id: svn://kolibrios.org@6341 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/media/animage/trunk/files.inc | 90 +------------------------ programs/media/animage/trunk/screen.inc | 54 +++++++-------- programs/media/animage/trunk/string.inc | 10 +-- 3 files changed, 31 insertions(+), 123 deletions(-) diff --git a/programs/media/animage/trunk/files.inc b/programs/media/animage/trunk/files.inc index ba79070d8..4c8cfa94d 100644 --- a/programs/media/animage/trunk/files.inc +++ b/programs/media/animage/trunk/files.inc @@ -1,86 +1,4 @@ ;----------------------------------------------------------- -;-----------load heading of file in memory------------------ -;----------------------------------------------------------- - -load_heading_of_file: - - mov [where_load_file],ebx - mov [full_file_path],eax - - mov esi,[full_file_path] - mov edi,filepath - mov ecx,256 - rep movsd - - xor eax,eax - mov ecx,[where_load_file] - mov edx,filepath - - mov [file_information],eax - mov [file_information+4],eax - mov [file_information+8],eax - mov [file_information+12],dword 512 - mov [file_information+16],ecx - mov [file_information+20],al - mov [file_information+21],edx - - mov eax,70 - mov ebx,file_information - mcall - - ret -;----------------------------------------------------------- -;--------load file in memory-------------------------------- -;----------------------------------------------------------- -load_file: - mov [where_load_file],ebx - mov [full_file_path],eax - - mov esi,[full_file_path] - mov edi,filepath - mov ecx,256 - rep movsd - - xor eax,eax - mov ebx,bufer_for_info - mov ecx,filepath - - mov [file_information],dword 5 - mov [file_information+4],eax - mov [file_information+8],eax - mov [file_information+12],eax - mov [file_information+16],ebx - mov [file_information+20],al - mov [file_information+21],ecx - - mov eax,70 - mov ebx,file_information - mcall - - test eax,eax - jnz error_load_file - - xor eax,eax - mov ebx,[bufer_for_info+32] - mov ecx,[where_load_file] - mov edx,filepath - - mov [file_information],eax - mov [file_information+4],eax - mov [file_information+8],eax - mov [file_information+12],ebx - mov [file_information+16],ecx - mov [file_information+20],al - mov [file_information+21],edx - - mov eax,70 - mov ebx,file_information - mcall - - error_load_file: - - ret -;----------------------------------------------------------- ;---------------save in file from memory-------------------- ;----------------------------------------------------------- save_file: @@ -98,7 +16,7 @@ save_file: mov ecx,[pointer_to_data] mov edx,filepath - mov [file_information],dword 2 + mov dword[file_information],SSF_CREATE_FILE mov [file_information+4],eax mov [file_information+8],eax mov [file_information+12],ebx @@ -106,11 +24,9 @@ save_file: mov [file_information+20],al mov [file_information+21],edx - mov eax,70 - mov ebx,file_information - mcall + mcall SF_FILE,file_information - ret + ret ;---------------------------------------------------------- ;-------------file information structure------------------- diff --git a/programs/media/animage/trunk/screen.inc b/programs/media/animage/trunk/screen.inc index 58a12f72a..68135fa99 100644 --- a/programs/media/animage/trunk/screen.inc +++ b/programs/media/animage/trunk/screen.inc @@ -251,47 +251,39 @@ fps: add ecx,edx mov edx,8*65536+20+15+49+5+1 - mcall 7 + mcall SF_PUT_IMAGE ret ;---------------------------------------------------------- ;--------------------clear screen-------------------------- ;---------------------------------------------------------- cleare_screen: - mov eax,[ScreenPointer] - mov ebx,[WorkScreen_SizeX] - imul ebx,[WorkScreen_SizeY] - lea ebx,[ebx+ebx*2] - shr ebx,3 - inc ebx - mov esi,0xffffff - -clear_screen_loop: - mov [eax],esi - mov [eax+3],esi - mov [eax+6],si - add eax,4+4 - dec ebx - jnz clear_screen_loop + mov edi,[ScreenPointer] + mov ebx,[WorkScreen_SizeX] + imul ebx,[WorkScreen_SizeY] + lea ebx,[ebx+ebx*2] + mov eax,0xffffffff + mov ecx,ebx + shr ecx,2 + rep stosd + mov ecx,ebx + and ecx,3 + rep stosb ret ;---------------------------------------------------------- ;-------------cleare work arrea(work screen)--------------- ;---------------------------------------------------------- cleare_work_arrea: - mov eax,[PointerToPicture] - mov ebx,[Picture_SizeX] - imul ebx,[Picture_SizeY] - lea ebx,[ebx+ebx*2] - shr ebx,3 - inc ebx - mov esi,0xffffff - -clear_work_arrea_loop: - mov [eax],esi - mov [eax+3],esi - mov [eax+6],si - add eax,4+4 - dec ebx - jnz clear_work_arrea_loop + mov edi,[PointerToPicture] + mov ebx,[Picture_SizeX] + imul ebx,[Picture_SizeY] + lea ebx,[ebx+ebx*2] + mov eax,0xffffffff + mov ecx,ebx + shr ecx,2 + rep stosd + mov ecx,ebx + and ecx,3 + rep stosb ret ;----------------------------------------------------------- ;calculate position work screen on a picture diff --git a/programs/media/animage/trunk/string.inc b/programs/media/animage/trunk/string.inc index 2b648ed14..7f2f1f3a4 100644 --- a/programs/media/animage/trunk/string.inc +++ b/programs/media/animage/trunk/string.inc @@ -1,14 +1,14 @@ ;----------------------------------------------------------- ;-------find simvole in string------------------------------ ;----------------------------------------------------------- + +;input: +;eax=string +;ebx=symvol find_symvol: - ;eax=string - ;ebx=symvol mov esi,eax next_symvol: - xor ecx,ecx - mov cl,[eax] - cmp cl,bl + cmp byte[eax],bl je symvol_fined inc eax jmp next_symvol