/programs/develop/libraries/box_lib/trunk/box_lib.asm |
---|
20,6 → 20,49 |
include 'bl_sys.mac' |
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 |
;---------------------------------------------------- |
;EditBox |
;---------------------------------------------------- |
196,7 → 239,7 |
dd sz_ted_but_reverse, ted_but_reverse |
dd sz_ted_but_find_next, ted_but_find_next |
dd sz_ted_text_colored, ted_text_colored |
dd sz_ted_version, 0x00000001 |
dd sz_ted_version, 0x00000002 |
dd 0,0 |
/programs/develop/libraries/box_lib/trunk/box_lib.mac |
---|
320,6 → 320,8 |
ted_fun_draw_panel_find equ dword[edi+230] ;㪠§ ⥫ì äãªæ¨î à¨á®¢ ¨ï ¯ ¥«¨ ¯®¨áª |
ted_fun_draw_panel_syntax equ dword[edi+234] ;㪠§ ⥫ì äãªæ¨î à¨á®¢ ¨ï ¯ ¥«¨ á¨â ªá¨á |
ted_fun_save_err equ dword[edi+238] ;㪠§ ⥫ì äãªæ¨î ¢ë§ë¢ ¥¬ãî ¥á«¨ á®åà ¥¨¥ ä ©« § ª®ç¨«®áì ¥ã¤ ç® |
ted_increase_size equ dword[edi+242] ;ç¨á«® ᨬ¢®«®¢ ª®â®àë¥ ¡ã¤¥â 㢥稢 âìáï ¯ ¬ïâì ¯à¨ ¥å¢ ⪥ |
ted_ptr_free_symb equ dword[edi+246] ;㪠§ ⥫ì ᢮¡®¤ãî ¯ ¬ïâì, ¢ ª®â®àãî ¬®¦® ¤®¡ ¢«ïâì ᨬ¢®« (¨á¯®«ì§ã¥âáï ¢ãâà¨ í«¥¬¥â ¤«ï ãáª®à¥¨ï ¢áâ ¢ª¨ ⥪áâ ) |
;------------------------------------------------------------------------------ |
ted_opt_ed_move_cursor equ 1 ;¤¢¨£ âì ªãàá®à ¯®á«¥ ¤®¡ ¢«¥¨ï ⥪áâ |
ted_opt_ed_change_time equ 2 ;¤®¡ ¢«ïâì ¨§¬¥¥¨ï ¯à¨ । ªâ¨à®¢ ¨¨ ⥪áâ |
/programs/develop/libraries/box_lib/trunk/doc/scrollbar/scrollbar.htm |
---|
39,7 → 39,7 |
<p>Âåðñèÿ ýëåìåíòà</p> |
<h1><a name="struc_scrollbar">Ñòðóêòóðà scrollbar</a></h1> |
<p>Ìàêðîñà äëÿ ñîçäàíèÿ ñòðóêòóðû äëÿ ñêðîëëáàðà íåò. Ïîòîìó äàííûå äëÿ íåå çàäàþòñÿ âðó÷íóþ. |
<p>Ìàêðîñà äëÿ ñîçäàíèÿ ñòðóêòóðû ñêðîëëáàðà íåò. Ïîòîìó äàííûå äëÿ íåå çàäàþòñÿ âðó÷íóþ. |
Åñòü ìàêðîñ use_scroll_bar îí äàåò âîçìîæíîñòü ïîíÿòü êàêèå äàííûå íóæíû äëÿ ñêðîëëèíãà.</p> |
<pre>macro use_scroll_bar |
{ |
/programs/develop/libraries/box_lib/trunk/doc/t_edit/t_edit.htm |
---|
38,6 → 38,7 |
<li><a href="#fun_text_colored">ted_text_colored</a></li> |
</ul> |
<p><a href="#syn_file">Ôîðìàò ôàéëà ïîäñâåòêè *.syn</a></p> |
<p><a href="#struc_tedit">Ñòðóêòóðà tedit</a></p> |
<h1><a name="vveden">Ââåäåíèå</a></h1> |
<p>Ýëåìåíò text_editor ïîçâîëÿåò ðàáîòàòü ñ òåêñòîâûìè ôàéëàìè, ñîäåðæèò ìíîãî ôóíêöèÿ äëÿ ðåäàêòèðîâàíèÿ òåêñòà.</p> |
319,8 → 320,70 |
Âîçìîæíî â áóäóùèõ âåðñèÿõ ôîðìàò ôàéëîâ ïîäñâåòêè áóäåò èçìåíåí.</li> |
</ul> |
<h1><a name="struc_tedit">Ñòðóêòóðà tedit</a></h1> |
<p>Ìàêðîñà äëÿ ñîçäàíèÿ ñòðóêòóðû òåêñòîâîãî ðåäàêòîðà íåò. Ïîòîìó äàííûå äëÿ íåãî çàäàþòñÿ âðó÷íóþ. Ïðèìåð ñòðóêòóðû äëÿ òåêñòîâîãî ðåäàêòîðà:</p> |
<pre>align 4 |
tedit0: ;ñòðóêòóðà òåêñòîâîãî ðåäàêòîðà |
.wnd BOX 195,5+20,325,260 ;+ 0 |
.rec BOX 30,13,7,10 ;+16 |
.drag_m db 0 ;+32 âûäåëåíèå îò ìûøè |
.drag_k db 0 ;+33 âûäåëåíèå îò êëàâèàòóðû |
.sel TexSelect 0,0,0,0 ;+34 ñòðóêòóðà âûäåëåíèÿ |
.seln TexSelect ;+50 äîïîëíèòåëüíàÿ ñòðóêòóðà âûäåëåíèÿ |
.tex dd 0 ;+66 text memory pointer |
.tex_1 dd 0 ;+70 text first symbol pointer |
.tex_end dd 0 ;+74 text end memory pointer |
.cur_x dd 0 ;+78 êîîðäèíàòà x êóðñîðà |
.cur_y dd 0 ;+82 êîîðäèíàòà y êóðñîðà |
.max_chars dd 5002 ;+86 ìàêñèìàëüíîå ÷èñëî ñèìâîëîâ â îäíîì äîêóìåíòå |
.count_colors_text dd 1 ;+90 êîëëè÷åñòâî öâåòîâ òåêñòà |
.count_key_words dd 0 ;+94 êîëëè÷åñòâî êëþ÷åâûõ ñëîâ |
.color_cursor dd 0xff0000 ;+98 öâåò êóðñîðà |
.color_wnd_capt dd 0x0080c0 ;+102 öâåò ïîëåé âîêðóã îêíà |
.color_wnd_work dd 0x0 ;+106 öâåò ôîíà îêíà |
.color_wnd_bord dd 0xffffff ;+110 öâåò òåêñòà íà ïîëÿõ |
.color_select dd 0x0000ff ;+114 öâåò âûäåëåíèÿ |
.color_cur_text dd 0xffff00 ;+118 öâåò ñèìâîëà ïîä êóðñîðîì |
.color_wnd_text dd 0x80ffff ;+122 öâåò òåêñòà â îêíå |
.syntax_file dd 0 ;+126 óêàçàòåëü íà íà÷àëî ôàéëà ñèíòàêñèñà |
.syntax_file_size dd 500 ;+130 ìàêñèìàëüíûé ðàçìåð ôàéëà ñèíòàêñèñà |
.text_colors dd 0 ;+134 óêàçàòåëü íà ìàññèâ öâåòîâ òåêñòà |
.help_text_f1 dd 0 ;+138 óêàçàòåëü íà òåêñò ñïðàâêè (ïî íàæàòèè F1) |
.help_id dd -1 ;+142 èäåíòèôèêàòîð äëÿ ñïðàâêè |
.key_words_data dd 0 ;+146 óêàçàòåëü íà ñòðóêòóðû êëþ÷åâûõ ñëîâ TexColViv |
.tim_ch dd ? ;+150 êîëè÷åñòâî èçìåíåíèé â ôàéëå |
.tim_undo dd ? ;+154 êîëè÷åñòâî îòìåíåííûõ äåéñòâèé |
.tim_ls dd ? ;+158 âðåìÿ ïîñëåäíåãî ñîõðàíåíèÿ |
.tim_co dd ? ;+162 âðåìÿ ïîñëåäíåé öâåòîâîé ðàçìåòêè |
.el_focus dd el_focus ;+166 óêàçàòåëü íà ïåðåìåííóþ ýëåìåíòà â ôîêóñå |
.err_save db 0 ;+170 îøèáêà ñîõðàíåíèÿ ôàéëà |
.panel_id db 0 ;+171 íîìåð îòêðûòîé ïàíåëè |
.key_new db 0 ;+172 ñèìâîë, êîòîðûé áóäåò äîáàâëÿòñÿ ñ êëàâèàòóðû |
.symbol_new_line db 20 ;+173 ñèìâîë çàâåðøåíèÿ ñòðîêè |
.scr_w dd scrol_w1 ;+174 âåðòèêàëüíûé ñêðîëëèíã |
.scr_h dd scrol_h1 ;+178 ãîðèçîíòàëüíûé ñêðîëëèíã |
.arr_key_pos dd 0 ;+182 óêàçàòåëü íà ìàññèâ ïîçèöèé êëþ÷åâûõ ñëîâ |
.buffer dd buf ;+186 óêàçàòåëü íà áóôåð êîïèðîâàíèÿ/âñòàâêè |
.buffer_find dd 0 ;+190 óêàçàòåëü íà áóôåð äëÿ ïîèñêà |
.cur_ins db 1 ;+194 ðåæèì ðàáîòû êóðñîðà (îáû÷íûé èëè çàìåíà) |
.mode_color db 1 ;+195 ðåæèì âûäåëåíèÿ ñëîâ öâåòîì (0-âûêë. 1-âêë.) |
.mode_invis db 0 ;+196 ðåæèì ïîêàçà íåïå÷àòàåìûõ ñèìâîëîâ |
.gp_opt db 0 ;+197 îïöèè âîçâðàùàåìûå ôóíêöèåé ted_get_pos_by_cursor |
.fun_on_key_ctrl_o dd but_ctrl_o ;+198 óêàçàòåëü íà ôóíêöèþ âûçûâàåìóþ ïðè íàæàòèè Ctrl+O (îòêðûòèå ôàéëà) |
.fun_on_key_ctrl_f dd 0 ;+202 ... Ctrl+F (âûçîâà/ñêðûòèÿ ïàíåëè ïîèñêà) |
.fun_on_key_ctrl_n dd but_ctrl_n ;+206 ... Ctrl+N (ñîçäàíèå íîâîãî äîêóìåíòà) |
.fun_on_key_ctrl_s dd 0 ;+210 ... Ctrl+S |
.buffer_size dd BUF_SIZE ;+214 ðàçìåð áóôåðà êîïèðîâàíèÿ/âñòàâêè |
.fun_find_err dd 0 ;+218 óêàçàòåëü íà ôóíêöèþ âûçûâàåìóþ åñëè ïîèñê çàêîí÷èëñÿ íåóäà÷íî |
.fun_init_synt_err dd 0 ;+222 óêàçàòåëü íà ôóíêöèþ âûçûâàåìóþ ïðè îøèáî÷íîì îòêðûòèè ôàéëà ñèíòàêñèñà |
.fun_draw_panel_buttons dd 0 ;+226 óêàçàòåëü íà ôóíêöèþ ðèñîâàíèÿ ïàíåëè ñ êíîïêàìè |
.fun_draw_panel_find dd 0 ;+230 óêàçàòåëü íà ôóíêöèþ ðèñîâàíèÿ ïàíåëè ïîèñêà |
.fun_draw_panel_syntax dd 0 ;+234 óêàçàòåëü íà ôóíêöèþ ðèñîâàíèÿ ïàíåëè ñèíòàêñèñà |
.fun_save_err dd 0 ;+238 óêàçàòåëü íà ôóíêöèþ âûçûâàåìóþ åñëè ñîõðàíåíèå ôàéëà çàêîí÷èëîñü íåóäà÷íî |
.increase_size dd 225 ;+242 ÷èñëî ñèìâîëîâ íà êîòîðûå áóäåò óâå÷èâàòüñÿ ïàìÿòü ïðè íåõâàòêå |
.ptr_free_symb dd ? ;+246 óêàçàòåëü íà ñâîáîäíóþ ïàìÿòü, â êîòîðóþ ìîæíî äîáàâëÿòü ñèìâîë (èñïîëüçóåòñÿ âíóòðè ýëåìåíòà äëÿ óñêîðåíèÿ âñòàâêè òåêñòà)</pre> |
<hr> |
<p>Äîêóìåíòàöèÿ îáíîâëÿëàñü ïîñëåäíèé ðàç 05.05.10.</p> |
<p>Äîêóìåíòàöèÿ îáíîâëÿëàñü ïîñëåäíèé ðàç 17.05.10.</p> |
</body> |
</html> |
/programs/develop/libraries/box_lib/trunk/t_edit.mac |
---|
1,6 → 1,6 |
; ¬ ªà®á ¤«ï á¨á⥬®© ¡¨¡«¨®â¥ª¨ box_lib.obj |
; í«¥¬¥â TextEditor ¤«ï Kolibri OS |
; ä ©« ¯®á«¥¤¨© à § ¨§¬¥ï«áï 05.05.2010 IgorA |
; ä ©« ¯®á«¥¤¨© à § ¨§¬¥ï«áï 17.05.2010 IgorA |
; ª®¤ ¯à¨¬¥¥ GPL2 «¨æ¥§¨ï |
;input: |
54,7 → 54,7 |
ends |
;------------------------------------------------------------------------------ |
ted_symbol_tab db 26 |
ted_symbol_tab db 26 ;ascii ª®¤ áâ५ª¨ ¢¯à ¢®, ¨á¯®«ì§ã¥âáï ¤«ï à¨á®¢ ¨ï â ¡ã«ï樨 ¢ ०¨¬¥ ¯®ª § ¥¢¨¤¨¬ëå ᨬ¢®«®¢ |
if lang eq ru |
80,7 → 80,7 |
end if |
;------ |
;EvChar - â ¡«¨æ ¤«ï 䨫ìâ஢ ¨ï ¤®¡ ¢«ï¥¬ëå ᨬ¢®«®¢, çâ®-¡ë ¥ ¯®¯ «¨ «¨è¨¥ § ª¨ |
align 4 |
EvChar db 0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0 |
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
98,7 → 98,7 |
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 |
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
;EvUpper - â ¡«¨æ ¤«ï ¯à¥®¡à §®¢ ¨ï ᨬ¢®«®¢ ª ¢¥à奬ã ॣ¨áâàã |
EvUpper db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
113,8 → 113,9 |
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
db 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159 |
db 0,240,0,242,0,244,0,246,0,0,0,0,0,0,0,0 |
;EvLover - â ¡«¨æ ¤«ï ¯à¥®¡à §®¢ ¨ï ᨬ¢®«®¢ ª ¨¦¥¬ã ॣ¨áâàã |
EvLover db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
124,13 → 125,13 |
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
db 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175 |
db 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239 |
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
db 241,0,243,0,245,0,247,0,0,0,0,0,0,0,0,0 |
conv_table dd 0 |
252,15 → 253,11 |
align 4 |
proc ted_delete, edit:dword |
push ecx edi |
push edi |
mov edi,dword[edit] |
mov ecx,ted_tex |
call mem_Free |
mov ecx,ted_arr_key_pos ;ted_syntax_file |
call mem_Free |
pop edi ecx |
stdcall mem_Free,ted_tex |
stdcall mem_Free,ted_arr_key_pos ;ted_syntax_file |
pop edi |
ret |
endp |
691,6 → 688,10 |
mov ted_tim_co,0 |
mov ted_tim_undo,0 |
mov ted_help_id,-1 |
mov ecx,sizeof.symbol |
shl ecx,1 |
add ecx,ted_tex |
mov ted_ptr_free_symb,ecx |
mov ecx,ted_scr_w |
mov dword[ecx+sb_offs_position],0 |
1108,10 → 1109,8 |
pop eax |
@@: |
mov edx,sizeof.symbol |
shl edx,1 |
add edx,ted_tex |
@@: ;for(i=2;i<texMax;i++) |
mov edx,ted_ptr_free_symb |
.beg_cycle: ;for(i=...;i<ted_max_chars;i++) |
cmp dword [edx+10],0 ;if(!tex[i].tc && !tex[i].td) |
jne .u1f |
cmp dword [edx+14],0 |
1150,8 → 1149,6 |
m2m dword [edx+6],dword [ecx] ;tex[i].next=tex[po_t].next; |
call ted_get_text_arr_index ;*** eax = i *** |
cmp eax,ted_max_chars |
jge @f |
mov [ecx],eax ;tex[po_t].next=i; // áá뫪¨ ¯¥à¥ ¯à ¢«ï¥¬ |
mov ecx,[edx+6] ; *** ecx = tex[i].next *** |
imul ecx,sizeof.symbol |
1177,8 → 1174,16 |
cmp edx,ted_tex_end |
jge @f ;out of memory |
cmp ebx,0 |
jne @b |
jne .beg_cycle |
mov ted_ptr_free_symb,edx ;¬¥ï¥¬ 㪠§ ⥫ì ᢮¡®¤ë© ᨬ¢®«, ¤«ï ¡®«¥¥ ¡ëáâண® ¯®¨áª ¯ ¬ï⨠|
jmp .add_all |
@@: |
cmp ted_increase_size,0 |
je .add_all |
call ted_memory_increase |
cmp ebx,0 |
jne .beg_cycle |
.add_all: ;¢á¥ ᨬ¢®«ë ¤®¡ ¢«¥ë |
call ted_text_colored |
popad |
1186,6 → 1191,35 |
endp |
;input: |
; edx = pointer to sumbol, when insert |
; edi = pointer to tedit struct |
;output: |
; edx = new pointer to sumbol, when insert |
align 4 |
proc ted_memory_increase |
cmp ted_increase_size,0 |
je @f |
push eax ebx ecx |
mov ecx,ted_increase_size |
add ecx,ted_max_chars |
mov ted_max_chars,ecx |
imul ecx,sizeof.symbol |
stdcall mem_ReAlloc, ted_tex,ecx |
mov ebx,ted_tex |
mov ted_tex,eax |
mov ted_tex_1,eax |
add ted_tex_1,sizeof.symbol |
sub edx,ebx |
add edx,eax |
mov ted_ptr_free_symb,edx |
add eax,ecx |
mov ted_tex_end,eax |
pop ecx ebx eax |
@@: |
ret |
endp |
;input: |
; ecx = position to free insert cell |
; edx = pointer to sumbol, when insert |
; esi = pointer to added symbol |
1269,8 → 1303,7 |
inc ted_tim_ch |
mov edx,eax ;i=p0; |
mov ecx,2 |
ConvertIndexToPointer ecx |
mov ecx,ted_ptr_free_symb |
@@: |
mov esi,[edx] |
and esi,0xff |
1926,6 → 1959,9 |
add ebx,ted_tex;.perv |
m2m dword [ebx+2],dword [edx+2] ;tex[tex[i].next].perv=tex[i].perv; |
cmp ted_ptr_free_symb,edx |
jle .no_u1 |
mov ted_ptr_free_symb,edx ;¬¥ï¥¬ 㪠§ ⥫ì ᢮¡®¤ë© ᨬ¢®«, ¤«ï ¡®«¥¥ ¡ëáâண® ¯®¨áª ¯ ¬ï⨠|
.no_u1: |
;else if(tex[i].td>ted_tim_ch) tex[i].td=0; // ¥á«¨ 㤠«¥¨¥ ᨬ¢®« ¡ë«® ®â¬¥¥® |
3366,7 → 3402,7 |
mov ebx,dword[table] ;convert scan to ascii |
ror ax,8 |
xor ah,ah |
add bx,ax |
add bx,ax ;? ebx,eax |
mov ah,byte[ebx] |
pop ebx |
ret |
3963,7 → 3999,7 |
@@: |
pop ecx ;§ ¯¨áë¢ ¥¬ 㪠§ â¥«ì ¢ë¤¥«¥ãî ¯ ¬ïâì |
call mem_Free |
stdcall 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 |
; ôàéë ïîñëåäíèé ðàç èçìåíÿëñÿ 29.04.2010 IgorA |
; ôàéë ïîñëåäíèé ðàç èçìåíÿëñÿ 15.05.2010 IgorA |
; íà êîä ïðèìåíåíà GPL2 ëèöåíçèÿ |
17,37 → 17,7 |
macro use_tree_list |
{ |
;----------------------------------------------------------------------------- |
;ôóíêöèÿ äëÿ âûäåëåíèÿ ïàìÿòè |
;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 |
mem_Free: |
push eax ebx |
cmp ecx,0 |
jz @f |
mov eax,68 |
mov ebx,13 |
int 0x40 |
@@: |
pop ebx eax |
ret |
align 4 |
tl_data_init: ;âûäåëíèå ïàìÿòè äëÿ ñòðóêòóð ñïèñêà è îñíîâíîé èíôîðìàöèè (êîíñòðóêòîð) |
push ebp |
mov ebp,esp |
95,29 → 65,23 |
ret 4 |
align 4 |
tl_data_clear: ;î÷èñòêà ïàìÿòè ýëåìåíòà (äåñòðóêòîð) |
push ebp |
mov ebp,esp |
push ecx edi |
mov edi,dword[ebp+8] |
proc tl_data_clear, tlist:dword ;î÷èñòêà ïàìÿòè ýëåìåíòà (äåñòðóêòîð) |
push edi |
mov edi,dword[tlist] |
cmp tl_data_img,0 |
je @f |
mov ecx,tl_data_img |
call mem_Free ;÷èñòêà ñèñòåìíûõ èêîíîê |
stdcall mem_Free,tl_data_img ;÷èñòêà ñèñòåìíûõ èêîíîê |
@@: |
cmp tl_data_img_sys,0 |
je @f |
mov ecx,tl_data_img_sys |
call mem_Free ;÷èñòêà ñèñòåìíûõ èêîíîê |
stdcall mem_Free,tl_data_img_sys ;÷èñòêà ñèñòåìíûõ èêîíîê |
@@: |
mov ecx,dword[edi] |
call mem_Free |
stdcall mem_Free,dword[edi] |
mov ecx,tl_data_nodes |
call mem_Free |
pop edi ecx |
pop ebp |
ret 4 |
stdcall mem_Free,tl_data_nodes |
pop edi |
ret |
endp |
align 4 |
tl_info_clear: ;î÷èñòêà ñïèñêà (èíôîðìàöèè) |