1,7 → 1,7 |
; |
; â ýòîì ôàéëå ñîáðàíû ôóíêöèè ñîçäàþùèå ïðîãðàìíûé êîä |
; ¢ í⮬ ä ©«¥ ᮡà ë äãªæ¨¨ ᮧ¤ î騥 ¯à®£à ¬ë© ª®¤ |
; |
u_object object ;âðåìåííûé îáúåêò äëÿ çàäàíèÿ ñìåùåíèé |
u_object object ;¢à¥¬¥ë© ®¡ê¥ªâ ¤«ï § ¤ ¨ï ᬥ饨© |
|
macro insert_coma |
{ |
20,7 → 20,7 |
stdcall [ted_text_add], tedit0,txt_sp,1,ted_opt_ed_move_cursor |
} |
|
;ôóíêöèÿ âñòàâëÿåò òåêñòîâóþ ñòðîêó â òåêñòîâûé ðåäàêòîð |
;äãªæ¨ï ¢áâ ¢«ï¥â ⥪á⮢ãî áâப㠢 ⥪áâ®¢ë© à¥¤ ªâ®à |
align 4 |
proc insert_text, txt:dword |
push eax |
33,7 → 33,7 |
ret |
endp |
|
;âñòàâëÿåò óêàçàííîå ñâîéñòâî èç îáúåêòà â òåêñòîâûé ðåäàêòîð |
;¢áâ ¢«ï¥â 㪠§ ®¥ ⥪á⮢®¥ ᢮©á⢮ ¨§ ®¡ê¥ªâ ¢ ⥪áâ®¢ë© à¥¤ ªâ®à |
align 4 |
proc insert_text_prop, p_obj:dword,index:dword |
push eax edx |
46,7 → 46,31 |
ret |
endp |
|
;ôóíêöèÿ âñòàâëÿåò 2 ïàðàìåòðà ïî 16 áèò â âèäå: |
;¢áâ ¢«ï¥â 㪠§ ®¥ ¡¨â®¢®¥ ᢮©á⢮ ¨§ ®¡ê¥ªâ ¢ ⥪áâ®¢ë© à¥¤ ªâ®à |
align 4 |
proc insert_bit_prop, p_obj:dword,index:dword |
push ebx ecx edi |
mov ebx,[p_obj] |
mov ecx,[index] |
test_bool_prop ebx,ecx |
jnc @f ;¥á«¨ ¯®«ì§®¢ â¥«ì ¥ ¢ë¡à « ¢ ®¡ê¥ªâ¥ ¤ ®¥ ᢮©á⢮ |
mov ebx,dword[ebx] |
call find_obj_in_opt |
mov ecx,dword[edi+obj_opt.bit_val-obj_opt] ;ecx - ᬥ饨¥ § 票© ᢮©á⢠(ª®áâ â) |
cmp byte[ecx],0 |
je @f ;¥á«¨ ã ®¡ê¥ªâ ¥â § ¤ ëå ¡¨â®¢ëå ᢮©á⢠|
add ecx,obj_opt ;¤®¡ ¢«ï¥¬ ç «® ä ©« á ®¯æ¨ï¬¨ |
stdcall get_string_by_ind, ecx,[index] |
cmp byte[edi],0 |
je @f ;¥á«¨ ã ®¡ê¥ªâ ¡¨â®¢®¥ ᢮©á⢮ ¯ãá⮥ |
stdcall insert_text, txt_plus |
stdcall insert_text, edi |
@@: |
pop edi ecx ebx |
ret |
endp |
|
;äãªæ¨ï ¢áâ ¢«ï¥â 2 ¯ à ¬¥âà ¯® 16 ¡¨â ¢ ¢¨¤¥: |
; (_p1_ shl 16 + _p2_) |
align 4 |
proc insert_2_prop_16_bit, obj:dword, p_hi:dword, p_lo:dword |
59,7 → 83,7 |
ret |
endp |
|
;âñòàâëÿåì ñòðîêó âèäà: |
;¢áâ ¢«ï¥¬ áâப㠢¨¤ : |
; txt_(n) db (s) |
align 4 |
proc insert_text_label_data, obj:dword, col:dword |
145,18 → 169,18 |
align 4 |
but_update: |
call draw_constructor |
cmp byte[show_mode],0 ;óñëîâèå âèäèìîñòè îêíà êîíñòðóêòîðà |
cmp byte[show_mode],0 ;ãá«®¢¨¥ ¢¨¤¨¬®á⨠®ª ª®áâàãªâ®à |
jne @f |
stdcall [buf2d_draw], buf_fon |
@@: |
call code_gen |
cmp byte[show_mode],1 ;óñëîâèå âèäèìîñòè òåêñòîâîãî îêíà |
cmp byte[show_mode],1 ;ãá«®¢¨¥ ¢¨¤¨¬®á⨠⥪á⮢®£® ®ª |
jne @f |
stdcall [ted_draw], tedit0 |
@@: |
ret |
|
;ôóíêöèÿ ñîçäàþùàÿ êîä âñåãî ôàéëà |
;äãªæ¨ï ᮧ¤ îé ï ª®¤ ¢á¥£® ä ©« |
align 4 |
code_gen: |
stdcall [ted_clear], tedit0,1 |
166,14 → 190,14 |
xor bl,bl |
call code_gen_obj |
stdcall [ted_text_add], tedit0,\ |
txt_nl,1,ted_opt_ed_move_cursor+ted_opt_ed_change_time ;äîáàâëÿåì ñèìâîë íîâîé ñòðîêè ñ îïöèåé ted_opt_ed_change_time äëÿ âîçìîæíîñòè ñîõðàíåíèÿ ôàéëà |
stdcall [ted_init_scroll_bars], tedit0, 4 ;ìåíÿåì ðàçìåðû ñêðîëëèíãîâ |
txt_nl,1,ted_opt_ed_move_cursor+ted_opt_ed_change_time ;¤®¡ ¢«ï¥¬ ᨬ¢®« ®¢®© áâப¨ á ®¯æ¨¥© ted_opt_ed_change_time ¤«ï ¢®§¬®¦®á⨠á®åà ¥¨ï ä ©« |
stdcall [ted_init_scroll_bars], tedit0, 4 ;¬¥ï¥¬ à §¬¥àë áªà®««¨£®¢ |
popad |
ret |
|
;input: |
; bl - óðîâåíü îáúåêòà |
; esi - óêàçàòåëü íà óçåë |
; bl - ã஢¥ì ®¡ê¥ªâ |
; esi - 㪠§ ⥫ì 㧥« |
align 4 |
code_gen_obj: |
push ebx edx |
185,13 → 209,13 |
jl .find_no |
|
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop eax ;ïîëó÷àåì äàííûå óçëà |
pop eax ;¯®«ãç ¥¬ ¤ ë¥ ã§« |
cmp eax,0 |
je .find_no |
|
cmp dword[eax],C_STR |
jne .no_struct |
stdcall get_obj_text_col, eax,1 ;edx - óêàçàòåëü íà 1-å ñâîéñòâî ñòðóêòóðû |
stdcall get_obj_text_col, eax,1 ;edx - 㪠§ ⥫ì 1-¥ ᢮©á⢮ áâàãªâãàë |
stdcall insert_text,txt_struc |
cmp byte[edx],0 |
jne @f |
202,7 → 226,7 |
|
cmp byte[edx],0 |
je @f |
;åñëè ñòðóêòóðà çàäàíà ìàêðîñîì |
;¥á«¨ áâàãªâãà § ¤ ¬ ªà®á®¬ |
insert_sp |
stdcall insert_text_prop, eax,1 |
insert_nl |
211,7 → 235,7 |
insert_nl |
|
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã |
cmp esi,0 |
je .end_st |
cmp byte[esi+2],bl ;lev |
218,12 → 242,12 |
jle .end_st |
push bx |
mov bl,byte[esi+2] |
call code_gen_obj ;ðåêóðñèâíûé âûçîâ äî÷åðíèõ îáúåêòîâ |
call code_gen_obj ;४ãàá¨¢ë© ¢ë§®¢ ¤®ç¥à¨å ®¡ê¥ªâ®¢ |
pop bx |
.end_st: |
cmp byte[edx],0 |
je @f |
;åñëè ñòðóêòóðà çàäàíà ìàêðîñîì |
;¥á«¨ áâàãªâãà § ¤ ¬ ªà®á®¬ |
stdcall insert_text, txt_skob_fc |
insert_nl |
jmp .beg_iterat |
233,35 → 257,31 |
.no_struct: |
cmp dword[eax],C_TXT |
jne @f |
stdcall get_code_text,eax ;îáðàáîòêà îáúåêòà |
stdcall get_code_text,eax ;®¡à ¡®âª ®¡ê¥ªâ |
@@: |
cmp dword[eax],C_INC |
jne @f |
stdcall get_code_incl,eax ;îáðàáîòêà îáúåêòà |
stdcall get_code_incl,eax ;®¡à ¡®âª ®¡ê¥ªâ |
@@: |
cmp dword[eax],C_COM |
jne @f |
stdcall get_code_comment,eax ;îáðàáîòêà îáúåêòà |
@@: |
cmp dword[eax],C_VAR |
jne @f |
stdcall get_code_variable,eax,ebx ;îáðàáîòêà îáúåêòà |
stdcall get_code_variable,eax,ebx ;®¡à ¡®âª ®¡ê¥ªâ |
@@: |
cmp dword[eax],C_WND |
jne @f |
stdcall get_code_window,eax ;îáðàáîòêà îáúåêòà |
stdcall get_code_window,eax ;®¡à ¡®âª ®¡ê¥ªâ |
@@: |
cmp dword[eax],C_ACO |
jne @f |
stdcall get_code_auto,eax ;îáðàáîòêà îáúåêòà |
stdcall get_code_auto,eax ;®¡à ¡®âª ®¡ê¥ªâ |
@@: |
cmp dword[eax],C_KEY ;êëàâèàòóðà |
cmp dword[eax],C_KEY ;ª« ¢¨ âãà |
jne @f |
stdcall get_code_key,eax ;îáðàáîòêà îáúåêòà |
stdcall get_code_key,eax ;®¡à ¡®âª ®¡ê¥ªâ |
@@: |
|
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã |
|
jmp .beg_iterat |
.find_no: |
268,7 → 288,7 |
pop edx ebx |
ret |
|
;äîáàâëåíèå îáúåêòà ñ ïðîãðàìíûì êîäîì (òåêñòîì) |
;¤®¡ ¢«¥¨¥ ®¡ê¥ªâ á ¯à®£à ¬ë¬ ª®¤®¬ (⥪á⮬) |
align 4 |
proc get_code_text, p_obj:dword |
;pushad |
279,7 → 299,7 |
ret |
endp |
|
;îáðàáîòêà îáúåêòà ñîçäàþùåãî àâòîìàòè÷åêñèå êîäû |
;®¡à ¡®âª ®¡ê¥ªâ ᮧ¤ î饣® ¢â®¬ â¨ç¥ªá¨¥ ª®¤ë |
align 4 |
proc get_code_auto, p_obj:dword |
pushad |
295,16 → 315,16 |
@@: |
test_bool_prop ebx,BIT_MOD_ACM |
jae @f |
;àâòîìàòè÷åñêèå ñîáûòèÿ îò ìûøè |
; ¢â®¬ â¨ç¥áª¨¥ ᮡëâ¨ï ®â ¬ëè¨ |
call get_code_auto_m |
@@: |
test_bool_prop ebx,BIT_MOD_ABU |
jae @f |
;ñîçäàíèå ôóíêöèè button |
;ᮧ¤ ¨¥ äãªæ¨¨ button |
insert_but_beg |
call get_code_auto_but ;êîäû âûçîâà êíîïîê |
call get_code_auto_but ;ª®¤ë ¢ë§®¢ ª®¯®ª |
insert_but_end |
call get_code_a_but_fun ;êîäû ôóíêöèé, âûçûâàåìûõ ïðè íàæàòèè êíîïîê |
call get_code_a_but_fun ;ª®¤ë äãªæ¨©, ¢ë§ë¢ ¥¬ëå ¯à¨ ¦ ⨨ ª®¯®ª |
@@: |
test_bool_prop ebx,BIT_MOD_ACD |
jae @f |
322,7 → 342,7 |
call get_code_auto_data_dop |
|
mov edx,C_LIB |
stdcall find_obj_in_file,edx ;eax - óêàçàòåëü íà ñòðóêòóðó áèáëèîòåêè |
stdcall find_obj_in_file,edx ;eax - 㪠§ ⥫ì áâàãªâãàã ¡¨¡«¨®â¥ª¨ |
cmp eax,0 |
je @f |
insert_nl |
340,7 → 360,7 |
stdcall insert_text, txt_ll_start |
call get_code_auto_data_libs_struc |
stdcall insert_text, txt_ll_end |
call get_code_auto_data_libs ;òàáëèöû èìïîðòà áèáëèîòåê |
call get_code_auto_data_libs ;â ¡«¨æë ¨¬¯®àâ ¡¨¡«¨®â¥ª |
@@: |
insert_nl |
popad |
357,7 → 377,7 |
je .find_no |
|
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop ebx ;ïîëó÷àåì äàííûå óçëà |
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§« |
cmp ebx,0 |
je .find_no |
|
375,7 → 395,7 |
@@: |
|
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã |
|
jmp .beg_iterat |
.find_no: |
383,11 → 403,11 |
ret |
endp |
|
;ñîçäàíèå äàííûõ (ñòðóêòóð îáúåêòîâ) |
;ᮧ¤ ¨¥ ¤ ëå (áâàãªâãà ®¡ê¥ªâ®¢) |
align 4 |
proc get_code_auto_data_el |
pushad |
insert_nl ;îòñòóï äëÿ ôîðìàòèðîâàíèÿ |
insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ¨ï |
|
stdcall dword[tl_node_poi_get_info], 0,tree2 |
pop esi |
396,7 → 416,7 |
je .find_no |
|
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop ebx ;ïîëó÷àåì äàííûå óçëà |
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§« |
cmp ebx,0 |
je .find_no |
|
424,12 → 444,15 |
|
stdcall insert_text, txt_mouse_dd |
|
stdcall insert_text, txt_0 ;òóò áóäóò ñâîéñòâà editbox à ïîêà ïðîñòî ñòàâèì 0 |
xchg eax,edx ;ñîõðàíÿåì çíà÷åíèå edx |
stdcall insert_text, txt_0 ;᢮©á⢠editbox |
stdcall insert_bit_prop, ebx,BIT_MOD_EDIT_FOC |
stdcall insert_bit_prop, ebx,BIT_MOD_EDIT_FIO |
|
xchg eax,edx ;á®åà 塞 § 票¥ edx |
stdcall get_obj_text_col,ebx,10 |
cmp byte[edx],0 ;ïðîâåðÿåì ïóñòàÿ ëè ñòðîêà ïðè çàïóñêå editbox |
cmp byte[edx],0 ;¯à®¢¥à塞 ¯ãáâ ï «¨ áâப ¯à¨ § ¯ã᪥ editbox |
je .null_string |
xchg eax,edx ;âîñòàíàâëèâàåì çíà÷åíèå edx |
xchg eax,edx ;¢®áâ ¢«¨¢ ¥¬ § 票¥ edx |
stdcall insert_text, txt_coma |
|
stdcall insert_text, txt_txt |
459,7 → 482,7 |
@@: |
|
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã |
|
jmp .beg_iterat |
.find_no: |
470,7 → 493,7 |
align 4 |
proc get_code_auto_data_el_cbox |
pushad |
insert_nl ;îòñòóï äëÿ ôîðìàòèðîâàíèÿ |
insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ¨ï |
|
stdcall dword[tl_node_poi_get_info], 0,tree2 |
pop esi |
479,7 → 502,7 |
je .find_no |
|
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop ebx ;ïîëó÷àåì äàííûå óçëà |
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§« |
cmp ebx,0 |
je .find_no |
|
504,8 → 527,6 |
stdcall insert_text, txt_coma |
stdcall insert_text_prop, ebx,7 |
stdcall insert_text, txt_coma |
;stdcall insert_text, txt_bit_31 |
;stdcall insert_text, txt_plus |
stdcall insert_text_prop, ebx,8 |
stdcall insert_text, txt_coma |
stdcall insert_text, txt_br |
516,28 → 537,12 |
stdcall insert_text, edx |
stdcall insert_text, txt_coma |
|
;ôëàãè |
;ä« £¨ |
stdcall insert_text,txt_0 |
test_bool_prop ebx,BIT_MOD_CHE |
jnc @f |
stdcall insert_text,txt_plus |
stdcall insert_text,txt_bit_che |
@@: |
test_bool_prop ebx,BIT_MOD_CHE_T |
jnc @f |
stdcall insert_text,txt_plus |
stdcall insert_text,txt_bit_che_t |
@@: |
test_bool_prop ebx,BIT_MOD_CHE_M |
jnc @f |
stdcall insert_text,txt_plus |
stdcall insert_text,txt_bit_che_m |
@@: |
test_bool_prop ebx,BIT_MOD_CHE_B |
jnc @f |
stdcall insert_text,txt_plus |
stdcall insert_text,txt_bit_che_b |
@@: |
stdcall insert_bit_prop, ebx,BIT_MOD_CHE |
stdcall insert_bit_prop, ebx,BIT_MOD_CHE_T |
stdcall insert_bit_prop, ebx,BIT_MOD_CHE_M |
stdcall insert_bit_prop, ebx,BIT_MOD_CHE_B |
|
insert_nl |
.no_check: |
547,7 → 552,7 |
@@: |
|
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã |
|
jmp .beg_iterat |
.find_no: |
555,11 → 560,11 |
ret |
endp |
|
;äàííûå äëÿ áèáëèîòåê |
;¤ ë¥ ¤«ï ¡¨¡«¨®â¥ª |
align 4 |
proc get_code_auto_data_libs_param |
pushad |
insert_nl ;îòñòóï äëÿ ôîðìàòèðîâàíèÿ |
insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ¨ï |
|
stdcall dword[tl_node_poi_get_info], 0,tree2 |
pop esi |
568,7 → 573,7 |
je .find_no |
|
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop ebx ;ïîëó÷àåì äàííûå óçëà |
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§« |
cmp ebx,0 |
je .find_no |
|
615,7 → 620,7 |
@@: |
|
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã |
|
jmp .beg_iterat |
.find_no: |
623,11 → 628,11 |
ret |
endp |
|
;äàííûå äëÿ áèáëèîòåê |
;¤ ë¥ ¤«ï ¡¨¡«¨®â¥ª |
align 4 |
proc get_code_auto_data_libs_struc |
pushad |
;insert_nl ;îòñòóï äëÿ ôîðìàòèðîâàíèÿ |
;insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ¨ï |
|
stdcall dword[tl_node_poi_get_info], 0,tree2 |
pop esi |
636,7 → 641,7 |
je .find_no |
|
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop ebx ;ïîëó÷àåì äàííûå óçëà |
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§« |
cmp ebx,0 |
je .find_no |
|
681,7 → 686,7 |
@@: |
|
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã |
|
jmp .beg_iterat |
.find_no: |
689,11 → 694,11 |
ret |
endp |
|
;äàííûå äëÿ áèáëèîòåê |
;¤ ë¥ ¤«ï ¡¨¡«¨®â¥ª |
align 4 |
proc get_code_auto_data_libs |
pushad |
insert_nl ;îòñòóï äëÿ ôîðìàòèðîâàíèÿ |
insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ¨ï |
|
stdcall dword[tl_node_poi_get_info], 0,tree2 |
pop esi |
702,7 → 707,7 |
je .find_no |
|
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop ebx ;ïîëó÷àåì äàííûå óçëà |
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§« |
cmp ebx,0 |
je .find_no |
|
718,7 → 723,7 |
@@: |
|
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã |
|
jmp .beg_iterat |
.find_no: |
734,23 → 739,23 |
mov bl,byte[esi+2] |
mov edi,esi |
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop edx ;ïîëó÷åíèå äàííûõ ðîäèòåëüñêîãî îáúåêòà |
pop edx ;¯®«ã票¥ ¤ ëå த¨â¥«ì᪮£® ®¡ê¥ªâ |
cmp edx,0 |
je @f |
@@: |
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã |
cmp esi,0 |
je @f |
cmp byte[esi+2],bl ;lev |
jle @f |
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop ecx ;ïîëó÷àåì äàííûå óçëà |
pop ecx ;¯®«ãç ¥¬ ¤ ë¥ ã§« |
cmp ecx,0 |
je @f |
cmp dword[ecx],C_IFN |
jne @b |
;âñòàâêà óêàçàòåëÿ íà ôóíêöèþ |
;¢áâ ¢ª 㪠§ ⥫ï äãªæ¨î |
test_bool_prop ecx,BIT_MOD_IMPORT_FUNCT_COMMENT |
jae .no_com_0 |
stdcall insert_text, txt_com |
758,7 → 763,7 |
insert_tab |
stdcall insert_text_prop, ecx,0 |
stdcall insert_text, txt_dd |
stdcall insert_text_prop, edx,3 ;ïðèñòàâêà ê ôóíêöèè |
stdcall insert_text_prop, edx,3 ;¯à¨áâ ¢ª ª äãªæ¨¨ |
stdcall insert_text_prop, ecx,0 |
insert_nl |
jmp @b |
767,24 → 772,24 |
mov esi,edi |
@@: |
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã |
cmp esi,0 |
je @f |
cmp byte[esi+2],bl ;lev |
jle @f |
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop ecx ;ïîëó÷àåì äàííûå óçëà |
pop ecx ;¯®«ãç ¥¬ ¤ ë¥ ã§« |
cmp ecx,0 |
je @f |
cmp dword[ecx],C_IFN |
jne @b |
;âñòàâêà èìåíè èìïîðòèðîâàííîé ôóíêöèè |
;¢áâ ¢ª ¨¬¥¨ ¨¬¯®àâ¨à®¢ ®© äãªæ¨¨ |
test_bool_prop ecx,BIT_MOD_IMPORT_FUNCT_COMMENT |
jae .no_com_1 |
stdcall insert_text, txt_com |
.no_com_1: |
insert_tab |
stdcall insert_text_prop, edx,3 ;ïðèñòàâêà ê ôóíêöèè |
stdcall insert_text_prop, edx,3 ;¯à¨áâ ¢ª ª äãªæ¨¨ |
stdcall insert_text_prop, ecx,0 |
stdcall insert_text, txt_db |
stdcall insert_text, txt_str_beg |
800,7 → 805,7 |
align 4 |
proc get_code_auto_data_dop |
pushad |
insert_nl ;îòñòóï äëÿ ôîðìàòèðîâàíèÿ |
insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ¨ï |
|
stdcall dword[tl_node_poi_get_info], 0,tree2 |
pop esi |
809,7 → 814,7 |
je .find_no |
|
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop ebx ;ïîëó÷àåì äàííûå óçëà |
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§« |
cmp ebx,0 |
je .find_no |
|
816,6 → 821,8 |
cmp dword[ebx],C_EDB |
jne @f |
;1,2,3,4,...,6,...8,...,10 - w,x,y,col_fon,...,col_frame,...,col_txt,...,txt |
|
;ä®à¬¨à㥬 ⥪áâ®¢ë¥ ¤ ë¥ ¤«ï editbox-®¢ |
stdcall insert_text, txt_txt |
mov edx,fp_icon |
stdcall get_obj_id_str, ebx,edx |
854,7 → 861,7 |
|
jmp @f |
|
.no_text: ;ïåðâîíà÷àëüíî òåêñò íå çàäàí |
.no_text: ;¯¥à¢® ç «ì® â¥ªáâ ¥ § ¤ |
stdcall insert_text, txt_times |
|
stdcall insert_text_prop,ebx,9 |
870,7 → 877,7 |
@@: |
|
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã |
|
jmp .beg_iterat |
.find_no: |
878,7 → 885,7 |
ret |
endp |
|
;ñâÿçûâàåì êíîïêè ñ ôóíêöèÿìè |
;á¢ï§ë¢ ¥¬ ª®¯ª¨ á äãªæ¨ï¬¨ |
align 4 |
proc get_code_auto_but |
pushad |
889,7 → 896,7 |
je .find_no |
|
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop ebx ;ïîëó÷àåì äàííûå óçëà |
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§« |
cmp ebx,0 |
je .find_no |
|
922,7 → 929,7 |
@@: |
|
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã |
|
jmp .beg_iterat |
.find_no: |
930,7 → 937,7 |
ret |
endp |
|
;áåðåì êîäû äëÿ ôóíêöèé íàæàòèé íà êíîïêè |
;¡¥à¥¬ ª®¤ë ¤«ï äãªæ¨© ¦ ⨩ ª®¯ª¨ |
align 4 |
proc get_code_a_but_fun |
pushad |
941,7 → 948,7 |
je .find_no |
|
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop ebx ;ïîëó÷àåì äàííûå óçëà |
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§« |
cmp ebx,0 |
je .find_no |
|
962,7 → 969,7 |
@@: |
|
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã |
|
jmp .beg_iterat |
.find_no: |
977,7 → 984,7 |
mov ebx,dword[p_obj] |
|
insert_key_beg |
call get_code_funct_key ;êîäû âûçîâà êíîïîê |
call get_code_funct_key ;ª®¤ë ¢ë§®¢ ª®¯®ª |
insert_key_end |
|
insert_nl |
995,7 → 1002,7 |
je .find_no |
|
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop ebx ;ïîëó÷àåì äàííûå óçëà |
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§« |
cmp ebx,0 |
je .find_no |
|
1007,7 → 1014,7 |
@@: |
|
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã |
|
jmp .beg_iterat |
.find_no: |
1015,7 → 1022,7 |
ret |
endp |
|
;îáúåêòû ïîäêëþ÷åíèÿ ôàéëîâ 'include ...' |
;®¡ê¥ªâë ¯®¤ª«î票ï ä ©«®¢ 'include ...' |
align 4 |
proc get_code_incl, p_obj:dword |
pushad |
1037,16 → 1044,8 |
ret |
endp |
|
;ᮧ¤ ¥¬ ª®¤ § ¤ ¨ï ®ª |
align 4 |
proc get_code_comment, p_obj:dword |
insert_com |
stdcall insert_text_prop, dword[p_obj],0 |
insert_nl |
ret |
endp |
|
;ñîçäàåì êîä çàäàíèÿ îêíà |
align 4 |
proc get_code_window, p_obj:dword |
pushad |
mov ebx,dword[p_obj] |
1107,13 → 1106,13 |
|
call get_code_draw_obj |
|
stdcall insert_text, txt_draw_we ;êîä çàâåðøàþùèé ôóíêöèþ ðèñîâàíèÿ |
stdcall insert_text, txt_draw_we ;ª®¤ § ¢¥àè î騩 äãªæ¨î à¨á®¢ ¨ï |
popad |
ret |
endp |
|
|
;ôîðìèðóåì âûçîâ ôóíêöèé äëÿ ðèñîâàíèÿ îáúåêòîâ |
;ä®à¬¨à㥬 ¢ë§®¢ äãªæ¨© ¤«ï à¨á®¢ ¨ï ®¡ê¥ªâ®¢ |
align 4 |
proc get_code_draw_obj |
pushad |
1124,7 → 1123,7 |
je .find_no |
|
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop ebx ;ïîëó÷àåì äàííûå óçëà |
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§« |
cmp ebx,0 |
je .find_no |
|
1226,7 → 1225,7 |
stdcall insert_text, txt_i_40 |
insert_nl |
@@: |
cmp dword[ebx],C_DTT ;ðèñîâàíèå òåêñòà ÷åðåç ñèñò. ô. 4 |
cmp dword[ebx],C_DTT ;à¨á®¢ ¨¥ ⥪áâ ç¥à¥§ á¨áâ. ä. 4 |
jne .ob_draw_text |
insert_tab |
stdcall insert_text, txt_mov |
1247,24 → 1246,9 |
insert_reg txt_ecx |
insert_coma |
stdcall insert_text_prop, ebx,3 |
test_bool_prop ebx,BIT_MOD_TXT_ASCII_0 |
jnc @f |
;or ecx,0x80000000 - áèò äëÿ ñòðîêè ASCIIZ |
stdcall insert_text,txt_plus |
stdcall insert_text,txt_bit_31 |
@@: |
test_bool_prop ebx,BIT_MOD_TXT_NO_TRAN |
jnc @f |
;or ecx,0x40000000 - áèò äëÿ íå ïðîçðà÷íîãî òåêñòà |
stdcall insert_text,txt_plus |
stdcall insert_text,txt_bit_30 |
@@: |
test_bool_prop ebx,BIT_MOD_TXT_CHAR2 |
jnc @f |
;or ecx,0x40000000 - áèò äëÿ 2-ãî ñèñò. øðèôòà |
stdcall insert_text,txt_plus |
stdcall insert_text,txt_bit_28 |
@@: |
stdcall insert_bit_prop, ebx,BIT_MOD_TXT_ASCII_0 ;31 - ¡¨â ¤«ï áâப¨ ASCIIZ |
stdcall insert_bit_prop, ebx,BIT_MOD_TXT_NO_TRAN ;30 - ¡¨â ¤«ï ¥ ¯à®§à 箣® ⥪áâ |
stdcall insert_bit_prop, ebx,BIT_MOD_TXT_CHAR2 ;28 - ¡¨â ¤«ï 2-£® á¨áâ. èà¨äâ |
insert_nl |
|
insert_tab |
1284,7 → 1268,7 |
stdcall insert_text, txt_mov |
insert_reg txt_edi |
insert_coma |
stdcall insert_text_prop, ebx,4 ;öâåò ôîíà |
stdcall insert_text_prop, ebx,4 ;梥â ä® |
insert_nl |
@@: |
|
1294,7 → 1278,7 |
.ob_draw_text: |
|
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã |
|
jmp .beg_iterat |
.find_no: |
1302,7 → 1286,7 |
ret |
endp |
|
;ñîçäàòü êîä îáúÿâëåíèÿ ïåðåìåííîé |
;ᮧ¤ âì ª®¤ ®¡ê¥¨ï ¯¥à¥¬¥®© |
align 4 |
proc get_code_variable, p_obj:dword,o_lev:dword |
pushad |
1311,30 → 1295,30 |
|
mov ecx,dword[o_lev] |
cmp cl,0 |
je .no_tab ;èçáåãàåì çàöèêëèâàíèÿ (0-1 = 2^32-1) |
je .no_tab ;¨§¡¥£ ¥¬ § 横«¨¢ ¨ï (0-1 = 2^32-1) |
and ecx,0xff |
cld |
@@: |
insert_tab ;ôîðìèðîâàíèå îòñòóïà ïåðåä ïåðåìåííîé |
insert_tab ;ä®à¬¨à®¢ ¨¥ ®âáâ㯠¯¥à¥¤ ¯¥à¥¬¥®© |
loop @b |
.no_tab: |
|
stdcall insert_text_prop, ebx,0 ;èìÿ ïåðåìåííîé |
stdcall insert_text_prop, ebx,0 ;¨¬ï ¯¥à¥¬¥®© |
insert_sp |
|
mov ecx,dword[ebx+u_object.typid-u_object] ;ecx - îòíîñèòåëüíûé èíäåêñ ðîäèòåëüñêîãî îáúåêòà (â ïàìÿòè) |
mov ecx,dword[ebx+u_object.typid-u_object] ;ecx - ®â®á¨â¥«ìë© ¨¤¥ªá த¨â¥«ì᪮£® ®¡ê¥ªâ (¢ ¯ ¬ïâ¨) |
xor eax,eax |
mov ax,[tree2.info_size] |
imul ecx,eax ;óìíîæàåì èíäåêñ íà ðàçìåð ñòðóêòóðû |
add ecx,[tree2.data_info] ;ecx - óêàçàòåëü äàííûå ðîäèòåëüñêîãî óçëà |
imul ecx,eax ;㬮¦ ¥¬ ¨¤¥ªá à §¬¥à áâàãªâãàë |
add ecx,[tree2.data_info] ;ecx - 㪠§ â¥«ì ¤ ë¥ à®¤¨â¥«ì᪮£® 㧫 |
|
;ïðîâåðêó íà ïðàâèëüíîñòü ecx ??? |
;¯à®¢¥àªã ¯à ¢¨«ì®áâì ecx ??? |
|
stdcall insert_text_prop, ecx,0 ;òèï ïåðåìåííîé |
stdcall insert_text_prop, ecx,0 ;⨯ ¯¥à¥¬¥®© |
insert_sp |
stdcall insert_text_prop, ebx,1 ;çíà÷åíèå |
stdcall insert_text_prop, ebx,1 ;§ 票¥ |
|
stdcall get_obj_text_col,ebx,2 ;êîììåíòàðèé |
stdcall get_obj_text_col,ebx,2 ;ª®¬¬¥â ਩ |
stdcall str_len,edx |
cmp eax,1 |
jl @f |
1350,14 → 1334,14 |
|
|
|
;--- òåêñòîâûå êîíñòàíòû --- |
;--- ⥪áâ®¢ë¥ ª®áâ âë --- |
txt_str_beg db 39,0 |
txt_str_end db 39,',0',0 |
txt_coma db ',',0 |
txt_skob_o db '(',0 |
txt_skob_c db ')',0 |
txt_skob_fo db '{',0 ;ñêîáêà ôèãóðíàÿ îòêðûâàþùàÿ |
txt_skob_fc db '}',0 ;ñêîáêà ôèãóðíàÿ çàêðûâàþùàÿ |
txt_skob_fo db '{',0 ;᪮¡ª 䨣ãà ï ®âªàë¢ îé ï |
txt_skob_fc db '}',0 ;᪮¡ª 䨣ãà ï § ªàë¢ îé ï |
txt_i_40 db 'int 0x40',13,0 |
txt_0 db '0',0 |
txt_1 db '1',0 |
1396,14 → 1380,10 |
txt_err_m_i_lib db 'err_msg_import_',0 |
txt_head_i db 'head_f_i',0 |
txt_ll_end db 'l_libs_end:',13,0 |
txt_bit_28 db '0x10000000',0 |
;txt_bit_28 db '0x10000000',0 |
txt_bit_29 db '0x20000000',0 |
txt_bit_30 db '0x40000000',0 |
txt_bit_31 db '0x80000000',0 |
txt_bit_che db 'ch_flag_en',0 |
txt_bit_che_t db 'ch_flag_top',0 |
txt_bit_che_m db 'ch_flag_middle',0 |
txt_bit_che_b db 'ch_flag_bottom',0 |
;txt_bit_31 db '0x80000000',0 |
txt_0x33000000 db '0x33000000',0 ;tmp |
txt_struc db 'struc',0 |
txt_t db 't',0 |
1460,9 → 1440,9 |
db 9,'jmp still',13 |
txt_key_3: |
|
;ïîëó÷àåì ïîðÿäêîâûé íîìåð îáúåêòà îòíîñèòåëüíî ïàìÿòè ýëåìåíòà tree2 |
;¯®«ãç ¥¬ ¯®à浪®¢ë© ®¬¥à ®¡ê¥ªâ ®â®á¨â¥«ì® ¯ ¬ïâ¨ í«¥¬¥â tree2 |
;output: |
; txt_buf - ñòðîêà ñ íîìåðîì îáúåêòà |
; txt_buf - áâப á ®¬¥à®¬ ®¡ê¥ªâ |
align 4 |
proc get_obj_id_str, p_obj:dword, txt_buf:dword |
push eax ecx edx |
1480,9 → 1460,9 |
ret |
endp |
|
;ïîëó÷àåì ïîðÿäêîâûé íîìåð îáúåêòà îòíîñèòåëüíî ïàìÿòè ýëåìåíòà tree2 |
;¯®«ãç ¥¬ ¯®à浪®¢ë© ®¬¥à ®¡ê¥ªâ ®â®á¨â¥«ì® ¯ ¬ïâ¨ í«¥¬¥â tree2 |
;output: |
; eax - íîìåð îáúåêòà |
; eax - ®¬¥à ®¡ê¥ªâ |
align 4 |
proc get_obj_id, p_obj:dword |
push ecx edx |
1496,9 → 1476,37 |
ret |
endp |
|
;--- òåêñòîâûå ôóíêöèè --- |
;--- ⥪áâ®¢ë¥ äãªæ¨¨ --- |
|
;¢ë¡¨à ¥¬ áâப㠨§ ¬ ᨢ , ¯® 㪠§ ®¬ã ¨¤¥ªáã |
;input: |
; str - 㪠§ â¥«ì ¬ ᨢ áâப |
; ind - ¨¤¥ªá ¨áª®¬®© áâப¨ |
;output: |
; edi - 㪠§ â¥«ì ©¤¥ãî áâபã |
align 4 |
proc get_string_by_ind, str:dword, ind:dword |
push eax ebx ecx |
mov edi,[str] |
mov ebx,[ind] |
xor al,al ;0 - ᨬ¢®« ª®æ áâப¨ |
@@: |
cmp ebx,0 |
jle @f ;¥á«¨ ©¤¥ áâப á 㪠§ ë¬ ¨¤¥ªá®¬ |
xor ecx,ecx |
dec ecx ;ecx - ç¨á«® ¯à®á¬ âਢ ¥¬ëå ¡ ©â |
cld |
repne scasb ;¨é¥¬ ª®¥æ áâப¨ (al=0) |
cmp byte[edi],0 |
je @f ;¥á«¨ á«¥¤ãî饩 áâப¨ ¥â ¢ë室 ¨§ 横« |
dec ebx |
jmp @b |
@@: |
pop ecx ebx eax |
ret |
endp |
|
align 4 |
proc mem_clear, mem:dword, len:dword |
push eax ecx edi |
cld |
1566,17 → 1574,17 |
|
align 4 |
.str: |
mov ecx,0x0a ;çàäàåòñÿ ñèñòåìà ñ÷èñëåíèÿ èçìåíÿþòñÿ ðåãèñòðû ebx,eax,ecx,edx âõîäíûå ïàðàìåòðû eax - ÷èñëî |
;ïðåðåâîä ÷èñëà â ASCII ñòðîêó âõîäíûå äàííûå ecx=ñèñòåìà ñ÷èñëåíÿ edi àäðåñ êóäà çàïèñûâàòü, áóäåì ñòðîêó, ïðè÷åì êîíåö ïåðåìåííîé |
cmp eax,ecx ;ñðàâíèòü åñëè â eax ìåíüøå ÷åì â ecx òî ïåðåéòè íà @@-1 ò.å. íà pop eax |
mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬ áç¨á«¥¨ï ¨§¬¥ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤ë¥ ¯ à ¬¥âàë eax - ç¨á«® |
;¯à¥à¥¢®¤ ç¨á« ¢ ASCII áâà®ªã ¢å®¤ë¥ ¤ ë¥ ecx=á¨á⥬ áç¨á«¥ï edi ¤à¥á ªã¤ § ¯¨áë¢ âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®¥æ ¯¥à¥¬¥®© |
cmp eax,ecx ;áà ¢¨âì ¥á«¨ ¢ eax ¬¥ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ @@-1 â.¥. pop eax |
jb @f |
xor edx,edx ;î÷èñòèòü edx |
div ecx ;ðàçäåëèòü - îñòàòîê â edx |
push edx ;ïîëîæèòü â ñòåê |
;dec edi ;ñìåùåíèå íåîáõîäèìîå äëÿ çàïèñè ñ êîíöà ñòðîêè |
call .str ;ïåðåéòè íà ñàìó ñåáÿ ò.å. âûçâàòü ñàìó ñåáÿ è òàê äî òîãî ìîìåíòà ïîêà â eax íå ñòàíåò ìåíüøå ÷åì â ecx |
xor edx,edx ;®ç¨áâ¨âì edx |
div ecx ;à §¤¥«¨âì - ®áâ ⮪ ¢ edx |
push edx ;¯®«®¦¨âì ¢ á⥪ |
;dec edi ;ᬥ饨¥ ¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®æ áâப¨ |
call .str ;¯¥à¥©â¨ á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥â ¯®ª ¢ eax ¥ á⠥⠬¥ìè¥ ç¥¬ ¢ ecx |
pop eax |
@@: ;cmp al,10 ;ïðîâåðèòü íå ìåíüøå ëè çíà÷åíèå â al ÷åì 10 (äëÿ ñèñòåìû ñ÷èñëåíÿ 10 äàííàÿ êîìàíäà - ëèøíàÿ)) |
or al,0x30 ;äàííàÿ êîìàíäà êîðî÷å ÷åì äâå âûøå |
stosb ;çàïèñàòü ýëåìåíò èç ðåãèñòðà al â ÿ÷åêó ïàìÿòè es:edi |
@@: ;cmp al,10 ;¯à®¢¥à¨âì ¥ ¬¥ìè¥ «¨ § 票¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥ï 10 ¤ ï ª®¬ ¤ - «¨è ï)) |
or al,0x30 ;¤ ï ª®¬ ¤ ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥ |
stosb ;§ ¯¨á âì í«¥¬¥â ¨§ ॣ¨áâà al ¢ ï祪㠯 ¬ï⨠es:edi |
ret |