/programs/develop/libraries/box_lib/trunk/box_lib.asm |
---|
21,47 → 21,10 |
include 'box_lib.mac' ;macro which should make life easier :) |
;----------------------------------------------------------------------------- |
;ôóíêöèÿ äëÿ âûäåëåíèÿ ïàìÿòè |
;input: |
; ecx = size data |
;otput: |
; eax = pointer to memory |
align 4 |
mem_Alloc: |
push ebx |
mov eax,68 |
mov ebx,12 |
int 0x40 |
pop ebx |
ret |
;ôóíêöèÿ äëÿ îñâîáîæäåíèÿ ïàìÿòè |
;input: |
; ecx = pointer to memory |
align 4 |
proc mem_Free, mptr:dword |
push eax ebx ecx |
mov ecx,[mptr] |
cmp ecx,0 |
jz @f |
mov eax,68 |
mov ebx,13 |
int 0x40 |
@@: |
pop ecx ebx eax |
ret |
endp |
;ôóíêöèÿ äëÿ ïåðåðàñïðåäåëåíèÿ ïàìÿòè |
;otput: |
; eax = pointer to memory |
align 4 |
proc mem_ReAlloc, mptr:dword, size:dword |
push ebx ecx edx |
mov edx, [mptr] |
mov ecx, [size] |
mcall 68, 20 |
pop edx ecx ebx |
ret |
endp |
mem.alloc dd ? ;ôóíêöèÿ äëÿ âûäåëåíèÿ ïàìÿòè |
mem.free dd ? ;ôóíêöèÿ äëÿ îñâîáîæäåíèÿ ïàìÿòè |
mem.realloc dd ? ;ôóíêöèÿ äëÿ ïåðåðàñïðåäåëåíèÿ ïàìÿòè |
dll.load dd ? |
;---------------------------------------------------- |
;EditBox |
138,8 → 101,17 |
align 16 |
use_text_edit |
;input: |
; eax = óêàçàòåëü íà ôóíêöèþ âûäåëåíèÿ ïàìÿòè |
; ebx = ... îñâîáîæäåíèÿ ïàìÿòè |
; ecx = ... ïåðåðàñïðåäåëåíèÿ ïàìÿòè |
; edx = ... çàãðóçêè áèáëèîòåêè (ïîêà íå èñïîëüçóåòñÿ) |
align 16 |
init: |
lib_init: |
mov [mem.alloc], eax |
mov [mem.free], ebx |
mov [mem.realloc], ecx |
mov [dll.load], edx |
ret |
147,7 → 119,7 |
EXPORTS: |
dd sz_init, init |
dd sz_init, lib_init |
dd sz_version, 0x00000001 |
dd sz_edit_box, edit_box |
/programs/develop/libraries/box_lib/trunk/t_edit.mac |
---|
1,6 → 1,6 |
; ¬ ªà®á ¤«ï á¨á⥬®© ¡¨¡«¨®â¥ª¨ box_lib.obj |
; í«¥¬¥â TextEditor ¤«ï Kolibri OS |
; ä ©« ¯®á«¥¤¨© à § ¨§¬¥ï«áï 17.05.2010 IgorA |
; ä ©« ¯®á«¥¤¨© à § ¨§¬¥ï«áï 09.06.2010 IgorA |
; ª®¤ ¯à¨¬¥¥ GPL2 «¨æ¥§¨ï |
;input: |
154,7 → 154,7 |
mov ecx,sizeof.symbol |
imul ecx,ted_max_chars |
call mem_Alloc ;¢ë¤¥«ï¥¬ ¯ ¬ïâì |
invoke mem.alloc,ecx ;¢ë¤¥«ï¥¬ ¯ ¬ïâì |
mov ted_tex,eax |
mov ted_tex_1,eax |
add ted_tex_1,sizeof.symbol |
166,7 → 166,7 |
;------------------------------------------------- |
mov ecx,1024 ;1024 - ¤«ï ¬ áᨢ ted_arr_key_pos |
add ecx,ted_syntax_file_size |
call mem_Alloc |
invoke mem.alloc,ecx |
mov ted_arr_key_pos,eax |
add eax,1024 |
mov ted_syntax_file,eax |
255,8 → 255,8 |
proc ted_delete, edit:dword |
push edi |
mov edi,dword[edit] |
stdcall mem_Free,ted_tex |
stdcall mem_Free,ted_arr_key_pos ;ted_syntax_file |
invoke mem.free,ted_tex |
invoke mem.free,ted_arr_key_pos ;ted_syntax_file |
pop edi |
ret |
endp |
1204,7 → 1204,7 |
add ecx,ted_max_chars |
mov ted_max_chars,ecx |
imul ecx,sizeof.symbol |
stdcall mem_ReAlloc, ted_tex,ecx |
invoke mem.realloc, ted_tex,ecx |
mov ebx,ted_tex |
mov ted_tex,eax |
mov ted_tex_1,eax |
3946,7 → 3946,7 |
je .no_save |
mov ecx,ted_max_chars |
call mem_Alloc |
invoke mem.alloc,ecx |
push eax ;§ ¯®¬¨ ¥¬ 㪠§ â¥«ì ¢ë¤¥«¥ãî ¯ ¬ïâì |
mov edx,ted_tex |
3999,7 → 3999,7 |
@@: |
pop ecx ;§ ¯¨áë¢ ¥¬ 㪠§ â¥«ì ¢ë¤¥«¥ãî ¯ ¬ïâì |
stdcall mem_Free,ecx |
invoke mem.free,ecx |
.no_save: |
popad |
ret |
/programs/develop/libraries/box_lib/trunk/tree_list.mac |
---|
1,6 → 1,6 |
; ìàêðîñ äëÿ ñèñòåìíîé áèáëèîòåêè box_lib.obj |
; ýëåìåíò TreeList äëÿ Kolibri OS |
; ôàéë ïîñëåäíèé ðàç èçìåíÿëñÿ 15.05.2010 IgorA |
; ôàéë ïîñëåäíèé ðàç èçìåíÿëñÿ 09.06.2010 IgorA |
; íà êîä ïðèìåíåíà GPL2 ëèöåíçèÿ |
27,7 → 27,7 |
xor ecx,ecx |
mov cx,tl_info_size |
imul ecx,tl_info_max_count |
call mem_Alloc |
invoke mem.alloc,ecx |
mov dword[edi],eax ;êîïèðóåì óêàçàòåëü íà ïîëó÷åíóþ ïàìÿòü â ñòðóêòóðó |
mov tl_data_img,0 ;îáíóëÿåì óêàçàòåëü 'data_img' |
mov tl_data_img_sys,0 ;îáíóëÿåì óêàçàòåëü 'data_img_sys' |
34,7 → 34,7 |
mov ecx,sizeof.TreeList |
imul ecx,tl_info_max_count |
call mem_Alloc |
invoke mem.alloc,ecx |
mov tl_data_nodes,eax ;êîïèðóåì óêàçàòåëü íà ïîëó÷åíóþ ïàìÿòü â ñòðóêòóðó |
push dword edi |
70,15 → 70,15 |
mov edi,dword[tlist] |
cmp tl_data_img,0 |
je @f |
stdcall mem_Free,tl_data_img ;÷èñòêà ñèñòåìíûõ èêîíîê |
invoke mem.free,tl_data_img ;÷èñòêà ñèñòåìíûõ èêîíîê |
@@: |
cmp tl_data_img_sys,0 |
je @f |
stdcall mem_Free,tl_data_img_sys ;÷èñòêà ñèñòåìíûõ èêîíîê |
invoke mem.free,tl_data_img_sys ;÷èñòêà ñèñòåìíûõ èêîíîê |
@@: |
stdcall mem_Free,dword[edi] |
invoke mem.free,dword[edi] |
stdcall mem_Free,tl_data_nodes |
invoke mem.free,tl_data_nodes |
pop edi |
ret |
endp |