Fix a small bug and optimization some code.

git-svn-id: svn://kolibrios.org@1169 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Alexey Teplov ( 2009-09-19 08:26:53 +00:00
parent 83e2f051b2
commit 2ff524842f
3 changed files with 31 additions and 32 deletions

View File

@ -85,7 +85,10 @@ button:
mcall 17 ;¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª« ¢¨è¨ mcall 17 ;¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª« ¢¨è¨
test ah,ah ;¥á«¨ ¢ ah 0, â® ¯¥à¥©â¨ ­  ®¡à ¡®â稪 ᮡë⨩ still test ah,ah ;¥á«¨ ¢ ah 0, â® ¯¥à¥©â¨ ­  ®¡à ¡®â稪 ᮡë⨩ still
jz still jz still
exit: mcall -1 exit:
call [free_fulder_info]
call [free_font]
mcall -1
key: key:
mcall 2 ;§ £à㧨¬ §­ ç¥­¨¥ 2 ¢ ॣ¨áâ®à eax ¨ ¯®«ã稬 ª®¤ ­ ¦ â®© ª« ¢¨è¨ mcall 2 ;§ £à㧨¬ §­ ç¥­¨¥ 2 ¢ ॣ¨áâ®à eax ¨ ¯®«ã稬 ª®¤ ­ ¦ â®© ª« ¢¨è¨
@ -111,7 +114,7 @@ draw_window: ;
mcall 12,1 mcall 12,1
xor eax,eax ;®¡­ã«¨âì eax xor eax,eax ;®¡­ã«¨âì eax
mov ebx,50*65536+680 ;[ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [à §¬¥à ¯® ®á¨ x] mov ebx,50*65536+680 ;[ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [à §¬¥à ¯® ®á¨ x]
mov ecx,30*65536+500 ;[ª®®à¤¨­ â  ¯® ®á¨ y]*65536 + [à §¬¥à ¯® ®á¨ y] mov ecx,30*65536+200 ;[ª®®à¤¨­ â  ¯® ®á¨ y]*65536 + [à §¬¥à ¯® ®á¨ y]
mov edx,[sc.work] ; color of work area RRGGBB,8->color gl mov edx,[sc.work] ; color of work area RRGGBB,8->color gl
or edx,0x34000000 or edx,0x34000000
mov edi,hed mov edi,hed

View File

@ -24,8 +24,6 @@
; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;***************************************************************************** ;*****************************************************************************
;Fonts library
;
;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;
format MS COFF format MS COFF
@ -98,15 +96,17 @@ align 4
mov ecx,263 mov ecx,263
repne scasb ;íàéäåì êîíåö ñòðîêè repne scasb ;íàéäåì êîíåö ñòðîêè
;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;
.next_a:
sub edi,5 ;.ksf,0 sub edi,5 ;.ksf,0
mov esi,dword name_font lea esi,[name_font]
mov ecx,name_font_e-name_font mov eax,dword[edi]
repe cmpsb or eax,0x20202000 ; ñäåëàåì ðàñøèðåíèå ñòðî÷íûìè áóêâàìè.
cmp eax,dword[esi]
jnz @f jnz @f
;;;;;;;; óðà ýòî íàø ôàéë ò.å. íàø øðèôò ìû íàøëè íóæíûé ôàéëèê )) ;;;;;;;; óðà ýòî íàø ôàéë ò.å. íàø øðèôò ìû íàøëè íóæíûé ôàéëèê ))
;òåïåðü íóæíî òî÷íî óáåäèòüñÿ ÷òî ýòî íàø è òîëüêî íàø ôàéëèê ;òåïåðü íóæíî òî÷íî óáåäèòüñÿ ÷òî ýòî íàø è òîëüêî íàø ôàéëèê
;çàãðóçèì çàãîëîâîê ôàéëà è óçíàåì åãî ðàçìåð ãëèôà. ;çàãðóçèì çàãîëîâîê ôàéëà è óçíàåì åãî ðàçìåð ãëèôà.
call alloc_mem ; âûäåëèì îçó ñâîèõ ïåðåìåííûõ call alloc_mem ; âûäåëèì îçó ñâîèõ ïåðåìåííûõ
; ñåé÷àñ íàì íóæíî ñôîðìèðîâàòü èìÿ ôàéëà ñ ïîëíûì ïóòåì ; ñåé÷àñ íàì íóæíî ñôîðìèðîâàòü èìÿ ôàéëà ñ ïîëíûì ïóòåì
mov eax,dword [alloc_memory_point] mov eax,dword [alloc_memory_point]
@ -153,10 +153,8 @@ align 4
mov dword [save_point_nt],ebp mov dword [save_point_nt],ebp
pop ecx pop ecx
mov dword [esp+28],0 xor eax,eax
popad jmp .exit
ret
align 4 align 4
@@: pop ecx @@: pop ecx
@ -164,7 +162,7 @@ align 4
dec ecx dec ecx
jnz .start_loop jnz .start_loop
; loop .start_loop ; loop .start_loop
; xor eax,eax or eax,-1
;;;;;;;; ïðîøëèñü - âñå èíòåðåñóùþùèå øðèôòû ïåðåìåñòèëè â íà÷àëî áëîêà. ;;;;;;;; ïðîøëèñü - âñå èíòåðåñóùþùèå øðèôòû ïåðåìåñòèëè â íà÷àëî áëîêà.
align 4 align 4
@ -224,7 +222,7 @@ pushad
mov eax,70 mov eax,70
mcall mcall
test eax,eax test eax,eax
jnz @f jnz .exit
lea eax,[buffer_read_d] lea eax,[buffer_read_d]
mov eax,dword [eax] mov eax,dword [eax]
@ -233,15 +231,15 @@ pushad
; add eax,dword [eax+8] ; add eax,dword [eax+8]
; add eax,dword [buffer_read_d] ; add eax,dword [buffer_read_d]
mov dword [font_array_data],eax mov dword [font_array_data],eax
mov dword [esp+28],0 xor eax,eax
; pop ecx jmp .ok
popad
ret 4
;here error file system ;here error file system
align 4 align 4
@@: .exit:
or dword [esp+28],-1 ;âåðíåì îøèáêó or eax,-1
align 4
.ok: mov dword [esp+28],eax ;âåðíåì îøèáêó
popad popad
ret 4 ret 4
@ -318,10 +316,10 @@ pushad
mov ebx,13 mov ebx,13
mcall mcall
test eax,eax test eax,eax
jnz @f ; jnz @f
or dword [esp+28],-1 ;âåðíåì îøèáêó mov dword [esp+28],eax ;âåðíåì îøèáêó
align 4 ;align 4
@@: ;@@:
popad popad
ret ret
align 4 align 4
@ -333,10 +331,10 @@ pushad
mov ebx,13 mov ebx,13
mcall mcall
test eax,eax test eax,eax
jnz @f ; jnz @f
or dword [esp+28],-1 ;âåðíåì îøèáêó mov dword [esp+28],eax ;âåðíåì îøèáêó
align 4 ;align 4
@@: ;@@:
popad popad
ret ret
@ -415,10 +413,8 @@ save_ebp dd 0x0
save_point_nt dd 0x0 save_point_nt dd 0x0
name_fulder db '/sys/FONTS',0 name_fulder db '/sys/FONTS',0
name_fuld_end= ($-name_fulder) -1 name_fuld_end= ($-name_fulder) -1
name_font db '.ksf' name_font db '.ksf',0
name_font_e:
type_fnt db 'kf01' type_fnt db 'kf01'
type_fnt_e:

View File

@ -25,7 +25,7 @@
;***************************************************************************** ;*****************************************************************************
Библиотека шрифтов. Библиотека шрифтов.
Альфа версия 0.00003 Автор Теплов Алексей. <Lrz> Альфа версия 0.00004 Автор Теплов Алексей. <Lrz>
Для демострации примера вам необходимо сделать следующее: Для демострации примера вам необходимо сделать следующее:
1) поместить библиотека fonts_lib.obj в дирректорию с примером font_ex.kex или лучше будет поместить библиотеку в /sys/lib 1) поместить библиотека fonts_lib.obj в дирректорию с примером font_ex.kex или лучше будет поместить библиотеку в /sys/lib
2) скопировать файл font01.ksf в дирректорию /sys/FONTS причем имя файла может быть любое обязательно только расширение *.ksf 2) скопировать файл font01.ksf в дирректорию /sys/FONTS причем имя файла может быть любое обязательно только расширение *.ksf