Subversion Repositories Kolibri OS

Rev

Rev 1720 | Rev 1732 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ;
  2. ; ¢ í⮬ ä ©«¥ ᮡ࠭ë ä㭪樨 ᮧ¤ î騥 ¯à®£à ¬­ë© ª®¤
  3. ;
  4. u_object object ;¢à¥¬¥­­ë© ®¡ê¥ªâ ¤«ï § ¤ ­¨ï ᬥ饭¨©
  5.  
  6. macro insert_coma
  7. {
  8.         stdcall [ted_text_add], tedit0,txt_coma,1,ted_opt_ed_move_cursor
  9. }
  10. macro insert_nl
  11. {
  12.         stdcall [ted_text_add], tedit0,txt_nl,1,ted_opt_ed_move_cursor
  13. }
  14. macro insert_com
  15. {
  16.         stdcall [ted_text_add], tedit0,txt_com,1,ted_opt_ed_move_cursor
  17. }
  18. macro insert_sp
  19. {
  20.         stdcall [ted_text_add], tedit0,txt_sp,1,ted_opt_ed_move_cursor
  21. }
  22.  
  23. ;äã­ªæ¨ï ¢áâ ¢«ï¥â ⥪á⮢ãî áâப㠢 ⥪áâ®¢ë© à¥¤ ªâ®à
  24. align 4
  25. proc insert_text, txt:dword
  26.         push eax
  27.         stdcall str_len,dword[txt]
  28.         cmp eax,1
  29.         jl @f
  30.                 stdcall [ted_text_add], tedit0,dword[txt],eax,ted_opt_ed_move_cursor
  31.         @@:
  32.         pop eax
  33.         ret
  34. endp
  35.  
  36. ;¢áâ ¢«ï¥â 㪠§ ­­®¥ ⥪á⮢®¥ ᢮©á⢮ ¨§ ®¡ê¥ªâ  ¢ ⥪áâ®¢ë© à¥¤ ªâ®à
  37. align 4
  38. proc insert_text_prop, p_obj:dword,index:dword
  39.         push eax edx
  40.                 mov eax,[p_obj]
  41.                 mov edx,[index]
  42.                 stdcall get_obj_text_col,eax,edx
  43.                 stdcall str_len,edx
  44.                 stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
  45.         pop edx eax
  46.         ret
  47. endp
  48.  
  49. ;¢áâ ¢«ï¥â 㪠§ ­­®¥ ¡¨â®¢®¥ ᢮©á⢮ ¨§ ®¡ê¥ªâ  ¢ ⥪áâ®¢ë© à¥¤ ªâ®à
  50. align 4
  51. proc insert_bit_prop, p_obj:dword,index:dword
  52.         push ebx ecx edi
  53.                 mov ebx,[p_obj]
  54.                 mov ecx,[index]
  55.                 test_bool_prop ebx,ecx
  56.                 jnc @f ;¥á«¨ ¯®«ì§®¢ â¥«ì ­¥ ¢ë¡à « ¢ ®¡ê¥ªâ¥ ¤ ­­®¥ ᢮©á⢮
  57.                         mov ebx,dword[ebx]
  58.                         call find_obj_in_opt
  59.                         mov ecx,dword[edi+obj_opt.bit_val-obj_opt] ;ecx - ᬥ饭¨¥ §­ ç¥­¨© ᢮©á⢠(ª®­áâ ­â)
  60.                         cmp byte[ecx],0
  61.                         je @f ;¥á«¨ ã ®¡ê¥ªâ  ­¥â § ¤ ­­ëå ¡¨â®¢ëå ᢮©áâ¢
  62.                                 add ecx,obj_opt ;¤®¡ ¢«ï¥¬ ­ ç «® ä ©«  á ®¯æ¨ï¬¨
  63.                                 stdcall get_string_by_ind, ecx,[index]
  64.                                 cmp byte[edi],0
  65.                                 je @f ;¥á«¨ ã ®¡ê¥ªâ  ¡¨â®¢®¥ ᢮©á⢮ ¯ãá⮥
  66.                                 stdcall insert_text, txt_plus
  67.                                 stdcall insert_text, edi
  68.                 @@:
  69.         pop edi ecx ebx
  70.         ret
  71. endp
  72.  
  73. ;äã­ªæ¨ï ¢áâ ¢«ï¥â 2 ¯ à ¬¥âà  ¯® 16 ¡¨â ¢ ¢¨¤¥:
  74. ; (_p1_ shl 16 + _p2_)
  75. align 4
  76. proc insert_2_prop_16_bit, obj:dword, p_hi:dword, p_lo:dword
  77.         stdcall insert_text, txt_skob_o
  78.         stdcall insert_text_prop, [obj],[p_hi]
  79.         stdcall insert_text, txt_shl_16
  80.         stdcall insert_text, txt_skob_c
  81.         stdcall insert_text, txt_plus
  82.         stdcall insert_text_prop, [obj],[p_lo]
  83.         ret
  84. endp
  85.  
  86. ;¢áâ ¢«ï¥¬ áâப㠢¨¤ :
  87. ; txt_(n) db (s)
  88. align 4
  89. proc insert_text_label_data, obj:dword, col:dword
  90.         push eax edx
  91.         mov eax,[obj]
  92.                 stdcall insert_text, txt_txt
  93.                 mov edx,fp_icon
  94.                 stdcall get_obj_id_str, eax,edx ;edx = 'n'
  95.                 stdcall str_cat, edx,txt_db ;edx = 'n db '
  96.                 stdcall insert_text, edx
  97.                 stdcall insert_text_prop, eax,[col]
  98.                 insert_nl
  99.         pop edx eax
  100.         ret
  101. endp
  102.  
  103. macro insert_tab
  104. {
  105.         stdcall [ted_text_add], tedit0,txt_tab,1,ted_opt_ed_move_cursor
  106. }
  107. macro insert_br
  108. {
  109.         stdcall [ted_text_add], tedit0,txt_br,3,ted_opt_ed_move_cursor
  110. }
  111. macro insert_a_met
  112. {
  113.         stdcall [ted_text_add], tedit0,txt_a_met,3,ted_opt_ed_move_cursor
  114. }
  115. macro insert_0
  116. {
  117.         stdcall [ted_text_add], tedit0,txt_0,1,ted_opt_ed_move_cursor
  118. }
  119. macro insert_plus
  120. {
  121.         stdcall [ted_text_add], tedit0,txt_plus,1,ted_opt_ed_move_cursor
  122. }
  123. macro insert_xor
  124. {
  125.         stdcall [ted_text_add], tedit0,txt_xor,4,ted_opt_ed_move_cursor
  126. }
  127. macro insert_cmp
  128. {
  129.         stdcall [ted_text_add], tedit0,txt_cmp,4,ted_opt_ed_move_cursor
  130. }
  131. macro insert_reg reg_name
  132. {
  133.         stdcall [ted_text_add], tedit0,reg_name,3,ted_opt_ed_move_cursor
  134. }
  135. macro insert_reg8 reg_name
  136. {
  137.         stdcall [ted_text_add], tedit0,reg_name,2,ted_opt_ed_move_cursor
  138. }
  139.  
  140. ;
  141. macro insert_but_beg
  142. {
  143.         stdcall [ted_text_add], tedit0,txt_but_1,txt_but_2-txt_but_1,ted_opt_ed_move_cursor
  144. }
  145. macro insert_but_end
  146. {
  147.         stdcall [ted_text_add], tedit0,txt_but_2,txt_but_3-txt_but_2,ted_opt_ed_move_cursor
  148. }
  149. ;
  150. macro insert_key_beg
  151. {
  152.         stdcall [ted_text_add], tedit0,txt_key_1,txt_key_2-txt_key_1,ted_opt_ed_move_cursor
  153. }
  154. macro insert_key_end
  155. {
  156.         stdcall [ted_text_add], tedit0,txt_key_2,txt_key_3-txt_key_2,ted_opt_ed_move_cursor
  157. }
  158.  
  159. macro insert_d_poi
  160. {
  161.         stdcall [ted_text_add], tedit0,txt_d_poi,1,ted_opt_ed_move_cursor
  162. }
  163. macro insert_ret
  164. {
  165.         stdcall [ted_text_add], tedit0,txt_ret,4,ted_opt_ed_move_cursor
  166. }
  167.  
  168.  
  169. align 4
  170. but_update:
  171.         call draw_constructor
  172.         cmp byte[show_mode],0 ;ãá«®¢¨¥ ¢¨¤¨¬®á⨠®ª­  ª®­áâàãªâ®à 
  173.         jne @f
  174.                 stdcall [buf2d_draw], buf_fon
  175.         @@:
  176.         call code_gen
  177.         cmp byte[show_mode],1 ;ãá«®¢¨¥ ¢¨¤¨¬®á⨠⥪á⮢®£® ®ª­ 
  178.         jne @f
  179.                 stdcall [ted_draw], tedit0
  180.         @@:
  181.         ret
  182.  
  183. ;äã­ªæ¨ï ᮧ¤ îé ï ª®¤ ¢á¥£® ä ©« 
  184. align 4
  185. code_gen:
  186.         stdcall [ted_clear], tedit0,1
  187. pushad
  188.         stdcall dword[tl_node_poi_get_info], 0,tree2
  189.         pop esi
  190.         xor bl,bl
  191.         call code_gen_obj
  192.         stdcall [ted_text_add], tedit0,\
  193.                 txt_nl,1,ted_opt_ed_move_cursor+ted_opt_ed_change_time ;¤®¡ ¢«ï¥¬ ᨬ¢®« ­®¢®© áâப¨ á ®¯æ¨¥© ted_opt_ed_change_time ¤«ï ¢®§¬®¦­®á⨠á®åà ­¥­¨ï ä ©« 
  194.         stdcall [ted_init_scroll_bars], tedit0, 4 ;¬¥­ï¥¬ à §¬¥àë áªà®««¨­£®¢
  195. popad
  196.         ret
  197.  
  198. ;input:
  199. ; bl - ã஢¥­ì ®¡ê¥ªâ 
  200. ; esi - 㪠§ â¥«ì ­  㧥«
  201. align 4
  202. code_gen_obj:
  203. push ebx edx
  204.         .beg_iterat:
  205.                 cmp esi,0
  206.                 je .find_no
  207.  
  208.                 cmp byte[esi+2],bl ;lev
  209.                 jl .find_no
  210.  
  211.                 stdcall dword[tl_node_poi_get_data], esi,tree2
  212.                 pop eax ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
  213.                 cmp eax,0
  214.                 je .find_no
  215.  
  216.                 cmp dword[eax],C_STR
  217.                 jne .no_struct
  218.                         stdcall get_obj_text_col, eax,1 ;edx - 㪠§ â¥«ì ­  1-¥ ᢮©á⢮ áâàãªâãàë
  219.                         stdcall insert_text,txt_struc
  220.                         cmp byte[edx],0
  221.                         jne @f
  222.                                 stdcall insert_text,txt_t
  223.                         @@:
  224.                         insert_sp
  225.                         stdcall insert_text_prop, eax,0
  226.  
  227.                         cmp byte[edx],0
  228.                         je @f
  229.                                 ;¥á«¨ áâàãªâãà  § ¤ ­  ¬ ªà®á®¬
  230.                                 insert_sp
  231.                                 stdcall insert_text_prop, eax,1
  232.                                 insert_nl
  233.                                 stdcall insert_text, txt_skob_fo
  234.                         @@:
  235.                         insert_nl
  236.                        
  237.                         stdcall dword[tl_node_poi_get_next_info], esi,tree2
  238.                         pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
  239.                         cmp esi,0
  240.                         je .end_st
  241.                         cmp byte[esi+2],bl ;lev
  242.                         jle .end_st
  243.                                 push bx
  244.                                         mov bl,byte[esi+2]
  245.                                         call code_gen_obj ;४ãàᨢ­ë© ¢ë§®¢ ¤®ç¥à­¨å ®¡ê¥ªâ®¢
  246.                                 pop bx
  247.                         .end_st:
  248.                         cmp byte[edx],0
  249.                         je @f
  250.                                 ;¥á«¨ áâàãªâãà  § ¤ ­  ¬ ªà®á®¬
  251.                                 stdcall insert_text, txt_skob_fc
  252.                                 insert_nl
  253.                                 jmp .beg_iterat
  254.                         @@:
  255.                         stdcall insert_text,txt_ends
  256.                         jmp .beg_iterat
  257.                 .no_struct:
  258.                 cmp dword[eax],C_TXT
  259.                 jne @f
  260.                         stdcall get_code_text,eax ;®¡à ¡®âª  ®¡ê¥ªâ 
  261.                 @@:
  262.                 cmp dword[eax],C_INC
  263.                 jne @f
  264.                         stdcall get_code_incl,eax ;®¡à ¡®âª  ®¡ê¥ªâ 
  265.                 @@:
  266.                 cmp dword[eax],C_VAR
  267.                 jne @f
  268.                         stdcall get_code_variable,eax,ebx ;®¡à ¡®âª  ®¡ê¥ªâ 
  269.                 @@:
  270.                 cmp dword[eax],C_WND
  271.                 jne @f
  272.                         stdcall get_code_window,eax ;®¡à ¡®âª  ®¡ê¥ªâ 
  273.                 @@:
  274.                 cmp dword[eax],C_ACO
  275.                 jne @f
  276.                         stdcall get_code_auto,eax ;®¡à ¡®âª  ®¡ê¥ªâ 
  277.                 @@:
  278.                 cmp dword[eax],C_KEY ;ª« ¢¨ âãà 
  279.                 jne @f
  280.                         stdcall get_code_key,eax ;®¡à ¡®âª  ®¡ê¥ªâ 
  281.                 @@:
  282.  
  283.                 stdcall dword[tl_node_poi_get_next_info], esi,tree2
  284.                 pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
  285.  
  286.                 jmp .beg_iterat
  287.         .find_no:
  288. pop edx ebx
  289.         ret
  290.  
  291. ;¤®¡ ¢«¥­¨¥ ®¡ê¥ªâ  á ¯à®£à ¬­ë¬ ª®¤®¬ (⥪á⮬)
  292. align 4
  293. proc get_code_text, p_obj:dword
  294.         ;pushad
  295.                 insert_nl
  296.                 stdcall insert_text_prop, dword[p_obj],0
  297.                 insert_nl
  298.         ;popad
  299.         ret
  300. endp
  301.  
  302. ;®¡à ¡®âª  ®¡ê¥ªâ  ᮧ¤ î饣®  ¢â®¬ â¨ç¥ªá¨¥ ª®¤ë
  303. align 4
  304. proc get_code_auto, p_obj:dword
  305.         pushad
  306.                 insert_nl
  307.                 mov ebx,dword[p_obj]
  308.                 test_bool_prop ebx,BIT_MOD_ACI
  309.                 jae @f
  310.                         mov edx,C_CHB
  311.                         stdcall find_obj_in_file,edx ;eax - 㪠§ â¥«ì ­  áâàãªâãàã check_box
  312.                         cmp eax,0
  313.                         je @f
  314.                                 stdcall insert_text, txt_std_init_cb
  315.                 @@:
  316.                 test_bool_prop ebx,BIT_MOD_ACM
  317.                 jae @f
  318.                         ; ¢â®¬ â¨ç¥áª¨¥ ᮡëâ¨ï ®â ¬ëè¨
  319.                         call get_code_auto_m
  320.                 @@:
  321.                 test_bool_prop ebx,BIT_MOD_ABU
  322.                 jae @f
  323.                         ;ᮧ¤ ­¨¥ ä㭪樨 button
  324.                         insert_but_beg
  325.                         call get_code_auto_but ;ª®¤ë ¢ë§®¢  ª­®¯®ª
  326.                         insert_but_end
  327.                         call get_code_a_but_fun ;ª®¤ë ä㭪権, ¢ë§ë¢ ¥¬ëå ¯à¨ ­ ¦ â¨¨ ª­®¯®ª
  328.                 @@:
  329.                 test_bool_prop ebx,BIT_MOD_ACD
  330.                 jae @f
  331.                         call get_code_auto_data_el
  332.  
  333.                         mov edx,C_CHB
  334.                         stdcall find_obj_in_file,edx ;eax - 㪠§ â¥«ì ­  áâàãªâãàã check_box
  335.                         cmp eax,0
  336.                         je .no_check
  337.                                 stdcall insert_text, txt_cb_b
  338.                                 call get_code_auto_data_el_cbox
  339.                                 stdcall insert_text, txt_cb_e
  340.                         .no_check:
  341.  
  342.                         call get_code_auto_data_dop
  343.  
  344.                         mov edx,C_LIB
  345.                         stdcall find_obj_in_file,edx ;eax - 㪠§ â¥«ì ­  áâàãªâãàã ¡¨¡«¨®â¥ª¨
  346.                         cmp eax,0
  347.                         je @f
  348.                                 insert_nl
  349.                                 stdcall insert_text, txt_head_i
  350.                                 stdcall insert_text, txt_d_poi
  351.                                 insert_nl
  352.                                 stdcall insert_text, txt_head_l
  353.                                 stdcall insert_text, txt_db
  354.                                 stdcall insert_text, txt_str_beg
  355.                                 stdcall insert_text, txt_sys_err
  356.                                 stdcall insert_text, txt_str_end
  357.                                 insert_nl
  358.  
  359.                                 call get_code_auto_data_libs_param
  360.                                 stdcall insert_text, txt_ll_start
  361.                                         call get_code_auto_data_libs_struc
  362.                                 stdcall insert_text, txt_ll_end
  363.                                 call get_code_auto_data_libs ;â ¡«¨æë ¨¬¯®àâ  ¡¨¡«¨®â¥ª
  364.                 @@:
  365.                 insert_nl
  366.         popad
  367.         ret
  368. endp
  369.  
  370. align 4
  371. proc get_code_auto_m
  372.         pushad
  373.         stdcall dword[tl_node_poi_get_info], 0,tree2
  374.         pop esi
  375.         .beg_iterat:
  376.                 cmp esi,0
  377.                 je .find_no
  378.  
  379.                 stdcall dword[tl_node_poi_get_data], esi,tree2
  380.                 pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
  381.                 cmp ebx,0
  382.                 je .find_no
  383.  
  384.                 cmp dword[ebx],C_EDB
  385.                 jne @f
  386.                         stdcall insert_text, txt_std_mouse_ed
  387.                         stdcall insert_text_prop, ebx,0
  388.                         insert_nl
  389.                 @@:
  390.                 cmp dword[ebx],C_CHB
  391.                 jne @f
  392.                         stdcall insert_text, txt_std_mouse_cb
  393.                         stdcall insert_text_prop, ebx,0
  394.                         insert_nl
  395.                 @@:
  396.  
  397.                 stdcall dword[tl_node_poi_get_next_info], esi,tree2
  398.                 pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
  399.  
  400.                 jmp .beg_iterat
  401.         .find_no:
  402.         popad
  403.         ret
  404. endp
  405.  
  406. ;ᮧ¤ ­¨¥ ¤ ­­ëå (áâàãªâãà ®¡ê¥ªâ®¢)
  407. align 4
  408. proc get_code_auto_data_el
  409.         pushad
  410.         insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ­¨ï
  411.  
  412.         stdcall dword[tl_node_poi_get_info], 0,tree2
  413.         pop esi
  414.         .beg_iterat:
  415.                 cmp esi,0
  416.                 je .find_no
  417.  
  418.                 stdcall dword[tl_node_poi_get_data], esi,tree2
  419.                 pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
  420.                 cmp ebx,0
  421.                 je .find_no
  422.  
  423.                 cmp dword[ebx],C_EDB
  424.                 jne @f
  425.                         ;1,2,3,4,...,6,...8,...,10 - w,x,y,col_fon,...,col_frame,...,col_txt,...,txt
  426.                         stdcall insert_text_prop, ebx,0
  427.                         stdcall insert_text, txt_ebox
  428.  
  429.                         mov ecx,1
  430.                         .prop:
  431.                                 insert_sp
  432.                                 stdcall insert_text_prop, ebx,ecx
  433.                                 insert_coma
  434.                                 inc ecx
  435.                                 cmp ecx,10
  436.                         jl .prop
  437.  
  438.                         insert_br
  439.                         stdcall insert_text, txt_txt
  440.  
  441.                         mov edx,fp_icon
  442.                         stdcall get_obj_id_str, ebx,edx
  443.                         stdcall insert_text, edx
  444.  
  445.                         stdcall insert_text, txt_mouse_dd
  446.  
  447.                         stdcall insert_text, txt_0 ;᢮©á⢠ editbox
  448.                         stdcall insert_bit_prop, ebx,BIT_MOD_EDIT_FOC
  449.                         stdcall insert_bit_prop, ebx,BIT_MOD_EDIT_FIO
  450.  
  451.                         xchg eax,edx ;á®å࠭塞 §­ ç¥­¨¥ edx
  452.                         stdcall get_obj_text_col,ebx,10
  453.                         cmp byte[edx],0 ;¯à®¢¥à塞 ¯ãáâ ï «¨ áâப  ¯à¨ § ¯ã᪥ editbox
  454.                         je .null_string
  455.                                 xchg eax,edx ;¢®áâ ­ ¢«¨¢ ¥¬ §­ ç¥­¨¥ edx
  456.                                 stdcall insert_text, txt_coma
  457.  
  458.                                 stdcall insert_text, txt_txt
  459.                                 stdcall insert_text, edx
  460.                                 stdcall insert_text, txt_met_end
  461.                                 stdcall insert_text, txt_minus
  462.                                 stdcall insert_text, txt_txt
  463.                                 stdcall insert_text, edx
  464.                                 stdcall insert_text, txt_minus
  465.                                 stdcall insert_text, txt_1
  466.                                 stdcall insert_text, txt_coma
  467.  
  468.                                 stdcall insert_text, txt_txt
  469.                                 stdcall insert_text, edx
  470.                                 stdcall insert_text, txt_met_end
  471.                                 stdcall insert_text, txt_minus
  472.                                 stdcall insert_text, txt_txt
  473.                                 stdcall insert_text, edx
  474.                                 stdcall insert_text, txt_minus
  475.                                 stdcall insert_text, txt_1
  476.                         .null_string:
  477.                         insert_nl
  478.                 @@:
  479.                 cmp dword[ebx],C_DTT
  480.                 jne @f
  481.                         stdcall insert_text_label_data, ebx,0
  482.                 @@:
  483.  
  484.                 stdcall dword[tl_node_poi_get_next_info], esi,tree2
  485.                 pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
  486.  
  487.                 jmp .beg_iterat
  488.         .find_no:
  489.         popad
  490.         ret
  491. endp
  492.  
  493. align 4
  494. proc get_code_auto_data_el_cbox
  495.         pushad
  496.         insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ­¨ï
  497.  
  498.         stdcall dword[tl_node_poi_get_info], 0,tree2
  499.         pop esi
  500.         .beg_iterat:
  501.                 cmp esi,0
  502.                 je .find_no
  503.  
  504.                 stdcall dword[tl_node_poi_get_data], esi,tree2
  505.                 pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
  506.                 cmp ebx,0
  507.                 je .find_no
  508.  
  509.                 cmp dword[ebx],C_CHB
  510.                 jne .no_check
  511.                         ;1,2,3,4,5, 6,7,8, 9 - ot_x,ot_y,w,h,ot_w_txt, col_fon,col_frame,col_txt, txt
  512.  
  513.                         stdcall insert_text_prop, ebx,0
  514.                         stdcall insert_text, txt_cbox
  515.                         insert_sp
  516.  
  517.                         stdcall insert_2_prop_16_bit, ebx,1,3
  518.                         stdcall insert_text, txt_coma
  519.                         stdcall insert_2_prop_16_bit, ebx,2,4
  520.                         stdcall insert_text, txt_coma
  521.  
  522.                         stdcall insert_text_prop, ebx,5
  523.                         stdcall insert_text, txt_coma
  524.                         insert_sp
  525.  
  526.                         stdcall insert_text_prop, ebx,6
  527.                         stdcall insert_text, txt_coma
  528.                         stdcall insert_text_prop, ebx,7
  529.                         stdcall insert_text, txt_coma
  530.                         stdcall insert_text_prop, ebx,8
  531.                         stdcall insert_text, txt_coma
  532.                         stdcall insert_text, txt_br
  533.  
  534.                         stdcall insert_text, txt_txt
  535.                         mov edx,fp_icon
  536.                         stdcall get_obj_id_str, ebx,edx
  537.                         stdcall insert_text, edx
  538.                         stdcall insert_text, txt_coma
  539.  
  540.                         ;ä« £¨
  541.                         stdcall insert_text,txt_0
  542.                         stdcall insert_bit_prop, ebx,BIT_MOD_CHE
  543.                         stdcall insert_bit_prop, ebx,BIT_MOD_CHE_T
  544.                         stdcall insert_bit_prop, ebx,BIT_MOD_CHE_M
  545.                         stdcall insert_bit_prop, ebx,BIT_MOD_CHE_B
  546.  
  547.                         insert_nl
  548.                 .no_check:
  549.                 cmp dword[ebx],C_DTT
  550.                 jne @f
  551.                         stdcall insert_text_label_data, ebx,0
  552.                 @@:
  553.  
  554.                 stdcall dword[tl_node_poi_get_next_info], esi,tree2
  555.                 pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
  556.  
  557.                 jmp .beg_iterat
  558.         .find_no:
  559.         popad
  560.         ret
  561. endp
  562.  
  563. ;¤ ­­ë¥ ¤«ï ¡¨¡«¨®â¥ª
  564. align 4
  565. proc get_code_auto_data_libs_param
  566.         pushad
  567.         insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ­¨ï
  568.  
  569.         stdcall dword[tl_node_poi_get_info], 0,tree2
  570.         pop esi
  571.         .beg_iterat:
  572.                 cmp esi,0
  573.                 je .find_no
  574.  
  575.                 stdcall dword[tl_node_poi_get_data], esi,tree2
  576.                 pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
  577.                 cmp ebx,0
  578.                 je .find_no
  579.  
  580.                 cmp dword[ebx],C_LIB
  581.                 jne @f
  582.                         ;0,1,2,3,4,5 - l_nam,s_dir,i_met,...
  583.  
  584.                         stdcall insert_text, txt_sys_dir
  585.                         ;object code
  586.                         mov edx,fp_icon
  587.                         stdcall get_obj_id_str, ebx,edx
  588.                         stdcall insert_text,edx
  589.                         stdcall insert_text,txt_db
  590.                         ;stdcall insert_text, txt_str_beg
  591.                         stdcall insert_text_prop, ebx,1
  592.                         ;stdcall insert_text, txt_str_end
  593.                         insert_nl
  594.  
  595.                         stdcall insert_text, txt_lib_name
  596.                         stdcall insert_text,edx
  597.                         stdcall insert_text,txt_db
  598.                         stdcall insert_text, txt_str_beg
  599.                         stdcall insert_text_prop, ebx,0
  600.                         stdcall insert_text, txt_str_end
  601.                         insert_nl
  602.  
  603.                         stdcall insert_text,txt_err_m_f_lib
  604.                         stdcall insert_text,edx
  605.                         stdcall insert_text,txt_db
  606.                         stdcall insert_text, txt_str_beg
  607.                         stdcall insert_text_prop, ebx,4
  608.                         stdcall insert_text, txt_str_end
  609.                         insert_nl
  610.  
  611.                         stdcall insert_text,txt_err_m_i_lib
  612.                         stdcall insert_text,edx
  613.                         stdcall insert_text,txt_db
  614.                         stdcall insert_text, txt_str_beg
  615.                         stdcall insert_text_prop, ebx,5
  616.                         stdcall insert_text, txt_str_end
  617.                         insert_nl
  618.  
  619.                         insert_nl
  620.                 @@:
  621.  
  622.                 stdcall dword[tl_node_poi_get_next_info], esi,tree2
  623.                 pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
  624.  
  625.                 jmp .beg_iterat
  626.         .find_no:
  627.         popad
  628.         ret
  629. endp
  630.  
  631. ;¤ ­­ë¥ ¤«ï ¡¨¡«¨®â¥ª
  632. align 4
  633. proc get_code_auto_data_libs_struc
  634.         pushad
  635.         ;insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ­¨ï
  636.  
  637.         stdcall dword[tl_node_poi_get_info], 0,tree2
  638.         pop esi
  639.         .beg_iterat:
  640.                 cmp esi,0
  641.                 je .find_no
  642.  
  643.                 stdcall dword[tl_node_poi_get_data], esi,tree2
  644.                 pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
  645.                 cmp ebx,0
  646.                 je .find_no
  647.  
  648.                 cmp dword[ebx],C_LIB
  649.                 jne @f
  650.                         ;0,1,2,3,4,5 - l_nam,s_dir,i_met,...
  651.  
  652.                         stdcall insert_text, txt_lib
  653.                         ;object code
  654.                         mov edx,fp_icon
  655.                         stdcall get_obj_id_str, ebx,edx
  656.                         stdcall insert_text,edx
  657.                         insert_sp
  658.                         stdcall insert_text, txt_ll
  659.                         stdcall insert_text, txt_lib_name
  660.                         stdcall insert_text,edx
  661.                         stdcall insert_text,txt_coma
  662.  
  663.                         stdcall insert_text, txt_lib_path
  664.  
  665.                         stdcall insert_text, txt_sys_dir
  666.                         stdcall insert_text,edx
  667.                         stdcall insert_text,txt_coma
  668.                         stdcall insert_text,txt_br
  669.                         stdcall insert_text,txt_tab
  670.  
  671.                         stdcall insert_text,txt_err_m_f_lib
  672.                         stdcall insert_text,edx
  673.                         stdcall insert_text,txt_coma
  674.                         stdcall insert_text,txt_head_l
  675.                         stdcall insert_text,txt_coma
  676.  
  677.                         stdcall insert_text_prop, ebx,2
  678.                         stdcall insert_text,txt_coma
  679.  
  680.                         stdcall insert_text,txt_err_m_i_lib
  681.                         stdcall insert_text,edx
  682.                         stdcall insert_text,txt_coma
  683.                         stdcall insert_text,txt_head_i
  684.  
  685.                         insert_nl
  686.                 @@:
  687.  
  688.                 stdcall dword[tl_node_poi_get_next_info], esi,tree2
  689.                 pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
  690.  
  691.                 jmp .beg_iterat
  692.         .find_no:
  693.         popad
  694.         ret
  695. endp
  696.  
  697. ;¤ ­­ë¥ ¤«ï ¡¨¡«¨®â¥ª
  698. align 4
  699. proc get_code_auto_data_libs
  700.         pushad
  701.         insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ­¨ï
  702.  
  703.         stdcall dword[tl_node_poi_get_info], 0,tree2
  704.         pop esi
  705.         .beg_iterat:
  706.                 cmp esi,0
  707.                 je .find_no
  708.  
  709.                 stdcall dword[tl_node_poi_get_data], esi,tree2
  710.                 pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
  711.                 cmp ebx,0
  712.                 je .find_no
  713.  
  714.                 cmp dword[ebx],C_LIB
  715.                 jne @f
  716.                         ;0,1,2,3,4,5 - l_nam,s_dir,i_met,...
  717.                         stdcall insert_text, txt_align_4
  718.                         stdcall insert_text_prop, ebx,2
  719.                         stdcall insert_text, txt_d_poi
  720.                         insert_nl
  721.  
  722.                         call get_code_lib_table
  723.                 @@:
  724.  
  725.                 stdcall dword[tl_node_poi_get_next_info], esi,tree2
  726.                 pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
  727.  
  728.                 jmp .beg_iterat
  729.         .find_no:
  730.         popad
  731.         ret
  732. endp
  733.  
  734. ;input:
  735. ; esi
  736. align 4
  737. get_code_lib_table:
  738. pushad
  739.         mov bl,byte[esi+2]
  740.         mov edi,esi
  741.         stdcall dword[tl_node_poi_get_data], esi,tree2
  742.         pop edx ;¯®«ã祭¨¥ ¤ ­­ëå த¨â¥«ì᪮£® ®¡ê¥ªâ 
  743.         cmp edx,0
  744.         je @f
  745.         @@:
  746.                 stdcall dword[tl_node_poi_get_next_info], esi,tree2
  747.                 pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
  748.                 cmp esi,0
  749.                 je @f
  750.                 cmp byte[esi+2],bl ;lev
  751.                 jle @f
  752.                         stdcall dword[tl_node_poi_get_data], esi,tree2
  753.                         pop ecx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
  754.                         cmp ecx,0
  755.                         je @f
  756.                         cmp dword[ecx],C_IFN
  757.                         jne @b
  758.                                 ;¢áâ ¢ª  㪠§ â¥«ï ­  äã­ªæ¨î
  759.                                 test_bool_prop ecx,BIT_MOD_IMPORT_FUNCT_COMMENT
  760.                                 jae .no_com_0
  761.                                         stdcall insert_text, txt_com
  762.                                 .no_com_0:
  763.                                 insert_tab
  764.                                 stdcall insert_text_prop, ecx,0
  765.                                 stdcall insert_text, txt_dd
  766.                                 stdcall insert_text_prop, edx,3 ;¯à¨áâ ¢ª  ª ä㭪樨
  767.                                 stdcall insert_text_prop, ecx,0
  768.                                 insert_nl
  769.                         jmp @b
  770.         @@:
  771.         stdcall insert_text, txt_dd_0_0
  772.         mov esi,edi
  773.         @@:
  774.                 stdcall dword[tl_node_poi_get_next_info], esi,tree2
  775.                 pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
  776.                 cmp esi,0
  777.                 je @f
  778.                 cmp byte[esi+2],bl ;lev
  779.                 jle @f
  780.                         stdcall dword[tl_node_poi_get_data], esi,tree2
  781.                         pop ecx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
  782.                         cmp ecx,0
  783.                         je @f
  784.                         cmp dword[ecx],C_IFN
  785.                         jne @b
  786.                                 ;¢áâ ¢ª  ¨¬¥­¨ ¨¬¯®àâ¨à®¢ ­­®© ä㭪樨
  787.                                 test_bool_prop ecx,BIT_MOD_IMPORT_FUNCT_COMMENT
  788.                                 jae .no_com_1
  789.                                         stdcall insert_text, txt_com
  790.                                 .no_com_1:
  791.                                 insert_tab
  792.                                 stdcall insert_text_prop, edx,3 ;¯à¨áâ ¢ª  ª ä㭪樨
  793.                                 stdcall insert_text_prop, ecx,0
  794.                                 stdcall insert_text, txt_db
  795.                                 stdcall insert_text, txt_str_beg
  796.                                 stdcall insert_text_prop, ecx,1
  797.                                 stdcall insert_text, txt_str_end
  798.                                 insert_nl
  799.                         jmp @b
  800.         @@:
  801. popad
  802.         ret
  803.  
  804. ;
  805. align 4
  806. proc get_code_auto_data_dop
  807.         pushad
  808.         insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ­¨ï
  809.  
  810.         stdcall dword[tl_node_poi_get_info], 0,tree2
  811.         pop esi
  812.         .beg_iterat:
  813.                 cmp esi,0
  814.                 je .find_no
  815.  
  816.                 stdcall dword[tl_node_poi_get_data], esi,tree2
  817.                 pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
  818.                 cmp ebx,0
  819.                 je .find_no
  820.  
  821.                 cmp dword[ebx],C_EDB
  822.                 jne @f
  823.                         ;1,2,3,4,...,6,...8,...,10 - w,x,y,col_fon,...,col_frame,...,col_txt,...,txt
  824.  
  825.                         ;ä®à¬¨à㥬 ⥪áâ®¢ë¥ ¤ ­­ë¥ ¤«ï editbox-®¢
  826.                         stdcall insert_text, txt_txt
  827.                         mov edx,fp_icon
  828.                         stdcall get_obj_id_str, ebx,edx
  829.                         stdcall insert_text,edx
  830.  
  831.                         stdcall get_obj_text_col,ebx,10
  832.                         cmp byte[edx],0
  833.                         je .no_text
  834.                                 stdcall insert_text, txt_d_poi
  835.                                 stdcall insert_text, txt_db
  836.                                 stdcall insert_text, txt_str_beg
  837.                                 stdcall str_len,edx
  838.                                 stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
  839.                                 stdcall insert_text, txt_str_end
  840.                                 insert_nl
  841.  
  842.                                 insert_tab
  843.                                 stdcall insert_text, txt_met_end
  844.                                 stdcall insert_text, txt_rb
  845.                                 stdcall insert_text, txt_txt
  846.                                 mov edx,fp_icon
  847.                                 stdcall get_obj_id_str, ebx,edx
  848.                                 stdcall insert_text,edx
  849.  
  850.                                 stdcall insert_text, txt_minus
  851.                                 stdcall insert_text, txt_txt
  852.                                 stdcall insert_text,edx
  853.                                 stdcall insert_text, txt_met_end
  854.  
  855.                                 insert_plus
  856.                                 stdcall insert_text_prop,ebx,9
  857.                                 insert_plus
  858.                                 stdcall insert_text, txt_3
  859.                                
  860.                                 insert_nl
  861.  
  862.                                 jmp @f
  863.  
  864.                         .no_text: ;¯¥à¢®­ ç «ì­® ⥪áâ ­¥ § ¤ ­
  865.                                 stdcall insert_text, txt_times
  866.  
  867.                                 stdcall insert_text_prop,ebx,9
  868.                                 insert_plus
  869.                                 stdcall insert_text, txt_2
  870.                                 stdcall insert_text, txt_db
  871.                                 insert_0
  872.                                 insert_nl
  873.                 @@:
  874.                 cmp dword[ebx],C_CHB
  875.                 jne @f
  876.                         stdcall insert_text_label_data, ebx,9
  877.                 @@:
  878.  
  879.                 stdcall dword[tl_node_poi_get_next_info], esi,tree2
  880.                 pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
  881.  
  882.                 jmp .beg_iterat
  883.         .find_no:
  884.         popad
  885.         ret
  886. endp
  887.  
  888. ;á¢ï§ë¢ ¥¬ ª­®¯ª¨ á äã­ªæ¨ï¬¨
  889. align 4
  890. proc get_code_auto_but
  891.         pushad
  892.         stdcall dword[tl_node_poi_get_info], 0,tree2
  893.         pop esi
  894.         .beg_iterat:
  895.                 cmp esi,0
  896.                 je .find_no
  897.  
  898.                 stdcall dword[tl_node_poi_get_data], esi,tree2
  899.                 pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
  900.                 cmp ebx,0
  901.                 je .find_no
  902.  
  903.                 cmp dword[ebx],C_BUT
  904.                 jne @f
  905.                         insert_tab
  906.                         insert_cmp
  907.                         insert_reg8 txt_ah
  908.                         insert_coma
  909.                         stdcall get_obj_text_col,ebx,0
  910.                         stdcall str_len,edx
  911.                         stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
  912.                         insert_nl
  913.                         insert_tab
  914.                         stdcall insert_text, txt_jne_f
  915.                         insert_nl
  916.                         insert_tab
  917.                         insert_tab
  918.                         stdcall insert_text, txt_call
  919.                         stdcall get_obj_text_col,ebx,6
  920.                         stdcall str_len,edx
  921.                         cmp eax,1
  922.                         jl .c_fun
  923.                                 stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
  924.                         .c_fun:
  925.                         insert_nl
  926.                         insert_tab
  927.                         insert_a_met ;@@:
  928.                         insert_nl
  929.                 @@:
  930.  
  931.                 stdcall dword[tl_node_poi_get_next_info], esi,tree2
  932.                 pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
  933.  
  934.                 jmp .beg_iterat
  935.         .find_no:
  936.         popad
  937.         ret
  938. endp
  939.  
  940. ;¡¥à¥¬ ª®¤ë ¤«ï ä㭪権 ­ ¦ â¨© ­  ª­®¯ª¨
  941. align 4
  942. proc get_code_a_but_fun
  943.         pushad
  944.         stdcall dword[tl_node_poi_get_info], 0,tree2
  945.         pop esi
  946.         .beg_iterat:
  947.                 cmp esi,0
  948.                 je .find_no
  949.  
  950.                 stdcall dword[tl_node_poi_get_data], esi,tree2
  951.                 pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
  952.                 cmp ebx,0
  953.                 je .find_no
  954.  
  955.                 cmp dword[ebx],C_BUT
  956.                 jne @f
  957.                         stdcall get_obj_text_col,ebx,6
  958.                         stdcall str_len,edx
  959.                         cmp eax,1
  960.                         jl .c_fun
  961.                                 insert_nl
  962.                                 stdcall insert_text, txt_align_4
  963.                                 stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
  964.                                 insert_d_poi
  965.                                 insert_nl
  966.                                 insert_tab
  967.                                 insert_ret
  968.                         .c_fun:
  969.                 @@:
  970.  
  971.                 stdcall dword[tl_node_poi_get_next_info], esi,tree2
  972.                 pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
  973.  
  974.                 jmp .beg_iterat
  975.         .find_no:
  976.         popad
  977.         ret
  978. endp
  979.  
  980. align 4
  981. proc get_code_key, p_obj:dword
  982.         pushad
  983.                 insert_nl
  984.                 mov ebx,dword[p_obj]
  985.  
  986.                 insert_key_beg
  987.                 call get_code_funct_key ;ª®¤ë ¢ë§®¢  ª­®¯®ª
  988.                 insert_key_end
  989.  
  990.                 insert_nl
  991.         popad
  992.         ret
  993. endp
  994.  
  995. align 4
  996. proc get_code_funct_key
  997.         pushad
  998.         stdcall dword[tl_node_poi_get_info], 0,tree2
  999.         pop esi
  1000.         .beg_iterat:
  1001.                 cmp esi,0
  1002.                 je .find_no
  1003.  
  1004.                 stdcall dword[tl_node_poi_get_data], esi,tree2
  1005.                 pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
  1006.                 cmp ebx,0
  1007.                 je .find_no
  1008.  
  1009.                 cmp dword[ebx],C_EDB
  1010.                 jne @f
  1011.                         stdcall insert_text, txt_std_key_ed
  1012.                         stdcall insert_text_prop,ebx,0
  1013.                         insert_nl
  1014.                 @@:
  1015.  
  1016.                 stdcall dword[tl_node_poi_get_next_info], esi,tree2
  1017.                 pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
  1018.  
  1019.                 jmp .beg_iterat
  1020.         .find_no:
  1021.         popad
  1022.         ret
  1023. endp
  1024.  
  1025. ;®¡ê¥ªâë ¯®¤ª«î祭¨ï ä ©«®¢ 'include ...'
  1026. align 4
  1027. proc get_code_incl, p_obj:dword
  1028.         pushad
  1029.                 stdcall insert_text, txt_incl
  1030.                 mov ebx,dword[p_obj]
  1031.                 stdcall insert_text_prop,ebx,0
  1032.  
  1033.                 stdcall get_obj_text_col,ebx,1
  1034.                 stdcall str_len,edx
  1035.                 cmp eax,1
  1036.                 jl @f
  1037.                         insert_sp
  1038.                         insert_com
  1039.                         stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
  1040.                 @@:
  1041.  
  1042.                 insert_nl
  1043.         popad
  1044.         ret
  1045. endp
  1046.  
  1047. ;ᮧ¤ ¥¬ ª®¤ § ¤ ­¨ï ®ª­ 
  1048. align 4
  1049. proc get_code_window, p_obj:dword
  1050.         pushad
  1051.                 mov ebx,dword[p_obj]
  1052.                 ;2,3,4,5,6 - x,y,w,h,col_bkg
  1053.  
  1054.                 stdcall insert_text, txt_draw_wb
  1055.  
  1056.                 insert_tab
  1057.                 insert_xor
  1058.                 insert_reg txt_eax
  1059.                 insert_coma
  1060.                 insert_reg txt_eax
  1061.                 insert_nl
  1062.  
  1063.                 ;mov ebx,...
  1064.                 insert_tab
  1065.                 stdcall insert_text, txt_mov
  1066.                 insert_reg txt_ebx
  1067.                 insert_coma
  1068.                 stdcall insert_2_prop_16_bit, ebx,2,4
  1069.                 insert_nl
  1070.  
  1071.                 ;mov ecx,...
  1072.                 insert_tab
  1073.                 stdcall insert_text, txt_mov
  1074.                 insert_reg txt_ecx
  1075.                 insert_coma
  1076.                 stdcall insert_2_prop_16_bit, ebx,3,5
  1077.                 insert_nl
  1078.  
  1079.                 ;mov edx,...
  1080.                 insert_tab
  1081.                 stdcall insert_text, txt_mov
  1082.                 insert_reg txt_edx
  1083.                 insert_coma
  1084.                 stdcall insert_text_prop, ebx,6
  1085.                 insert_nl
  1086.  
  1087.                 ;or edx,0x33000000
  1088.                 insert_tab
  1089.                 stdcall insert_text, txt_or
  1090.                 insert_reg txt_edx
  1091.                 insert_coma
  1092.                 stdcall insert_text, txt_0x33000000
  1093.                 insert_nl
  1094.  
  1095.                 ;mov edi,...
  1096.                 insert_tab
  1097.                 stdcall insert_text, txt_mov
  1098.                 insert_reg txt_edi
  1099.                 insert_coma
  1100.                 stdcall insert_text_prop, ebx,0
  1101.                 insert_nl
  1102.  
  1103.                 insert_tab
  1104.                 stdcall insert_text, txt_i_40
  1105.                 insert_nl
  1106.  
  1107.                 call get_code_draw_obj
  1108.  
  1109.                 stdcall insert_text, txt_draw_we ;ª®¤ § ¢¥àè î騩 äã­ªæ¨î à¨á®¢ ­¨ï
  1110.         popad
  1111.         ret
  1112. endp
  1113.  
  1114.  
  1115. ;ä®à¬¨à㥬 ¢ë§®¢ ä㭪権 ¤«ï à¨á®¢ ­¨ï ®¡ê¥ªâ®¢
  1116. align 4
  1117. proc get_code_draw_obj
  1118.         pushad
  1119.         stdcall dword[tl_node_poi_get_info], 0,tree2
  1120.         pop esi
  1121.         .beg_iterat:
  1122.                 cmp esi,0
  1123.                 je .find_no
  1124.  
  1125.                 stdcall dword[tl_node_poi_get_data], esi,tree2
  1126.                 pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
  1127.                 cmp ebx,0
  1128.                 je .find_no
  1129.  
  1130.                 cmp dword[ebx],C_EDB
  1131.                 jne @f
  1132.                         stdcall insert_text, txt_editb_draw
  1133.                         stdcall insert_text_prop, ebx,0
  1134.                         insert_nl
  1135.                 @@:
  1136.                 cmp dword[ebx],C_CHB
  1137.                 jne @f
  1138.                         stdcall insert_text, txt_cbox_draw
  1139.                         stdcall insert_text_prop, ebx,0
  1140.                         insert_nl
  1141.                 @@:
  1142.                 cmp dword[ebx],C_BUT
  1143.                 jne .ob_draw_but
  1144.                         insert_tab
  1145.                         stdcall insert_text, txt_mov
  1146.                         insert_reg txt_eax
  1147.                         insert_coma
  1148.                         stdcall insert_text, txt_8
  1149.                         insert_nl
  1150.  
  1151.                         insert_tab
  1152.                         stdcall insert_text, txt_mov
  1153.                         insert_reg txt_ebx
  1154.                         insert_coma
  1155.                         stdcall insert_2_prop_16_bit, ebx,1,3
  1156.                         insert_nl
  1157.  
  1158.                         insert_tab
  1159.                         stdcall insert_text, txt_mov
  1160.                         insert_reg txt_ecx
  1161.                         insert_coma
  1162.                         stdcall insert_2_prop_16_bit, ebx,2,4
  1163.                         insert_nl
  1164.  
  1165.                         insert_tab
  1166.                         stdcall insert_text, txt_mov
  1167.                         insert_reg txt_edx
  1168.                         insert_coma
  1169.                         stdcall insert_text_prop, ebx,0
  1170.                         test_bool_prop ebx,BIT_MOD_BUT_NFON
  1171.                         jnc @f
  1172.                                 stdcall insert_text, txt_plus
  1173.                                 stdcall insert_text, txt_bit_30
  1174.                         @@:
  1175.                         test_bool_prop ebx,BIT_MOD_BUT_NBORD
  1176.                         jnc @f
  1177.                                 stdcall insert_text, txt_plus
  1178.                                 stdcall insert_text, txt_bit_29
  1179.                         @@:
  1180.                         insert_nl
  1181.  
  1182.                         insert_tab
  1183.                         stdcall insert_text, txt_mov
  1184.                         insert_reg txt_esi
  1185.                         insert_coma
  1186.                         stdcall insert_text_prop, ebx,5 ;button color
  1187.                         insert_nl
  1188.  
  1189.                         insert_tab
  1190.                         stdcall insert_text, txt_i_40
  1191.                         insert_nl
  1192.                 .ob_draw_but:
  1193.                 cmp dword[ebx],C_REC
  1194.                 jne @f
  1195.                         insert_tab
  1196.                         stdcall insert_text, txt_mov
  1197.                         insert_reg txt_eax
  1198.                         insert_coma
  1199.                         stdcall insert_text, txt_1
  1200.                         stdcall insert_text, txt_3
  1201.                         insert_nl
  1202.  
  1203.                         insert_tab
  1204.                         stdcall insert_text, txt_mov
  1205.                         insert_reg txt_ebx
  1206.                         insert_coma
  1207.                         stdcall insert_2_prop_16_bit, ebx,1,3
  1208.                         insert_nl
  1209.  
  1210.                         insert_tab
  1211.                         stdcall insert_text, txt_mov
  1212.                         insert_reg txt_ecx
  1213.                         insert_coma
  1214.                         stdcall insert_2_prop_16_bit, ebx,2,4
  1215.                         insert_nl
  1216.  
  1217.                         insert_tab
  1218.                         stdcall insert_text, txt_mov
  1219.                         insert_reg txt_edx
  1220.                         insert_coma
  1221.                         stdcall insert_text_prop, ebx,0 ;rect color
  1222.                         insert_nl
  1223.  
  1224.                         insert_tab
  1225.                         stdcall insert_text, txt_i_40
  1226.                         insert_nl
  1227.                 @@:
  1228.                 cmp dword[ebx],C_DTT ;à¨á®¢ ­¨¥ ⥪áâ  ç¥à¥§ á¨áâ. ä. 4
  1229.                 jne .ob_draw_text
  1230.                         insert_tab
  1231.                         stdcall insert_text, txt_mov
  1232.                         insert_reg txt_eax
  1233.                         insert_coma
  1234.                         stdcall insert_text, txt_4
  1235.                         insert_nl
  1236.  
  1237.                         insert_tab
  1238.                         stdcall insert_text, txt_mov
  1239.                         insert_reg txt_ebx
  1240.                         insert_coma
  1241.                         stdcall insert_2_prop_16_bit, ebx,1,2
  1242.                         insert_nl
  1243.  
  1244.                         insert_tab
  1245.                         stdcall insert_text, txt_mov
  1246.                         insert_reg txt_ecx
  1247.                         insert_coma
  1248.                         stdcall insert_text_prop, ebx,3
  1249.                         stdcall insert_bit_prop, ebx,BIT_MOD_TXT_ASCII_0 ;31 - ¡¨â ¤«ï áâப¨ ASCIIZ
  1250.                         stdcall insert_bit_prop, ebx,BIT_MOD_TXT_NO_TRAN ;30 - ¡¨â ¤«ï ­¥ ¯à®§à ç­®£® ⥪áâ 
  1251.                         stdcall insert_bit_prop, ebx,BIT_MOD_TXT_CHAR2 ;28 - ¡¨â ¤«ï 2-£® á¨áâ. èà¨äâ 
  1252.                         insert_nl
  1253.  
  1254.                         insert_tab
  1255.                         stdcall insert_text, txt_mov
  1256.                         insert_reg txt_edx
  1257.                         insert_coma
  1258.                         stdcall insert_text, txt_txt
  1259.                         mov edx,fp_icon
  1260.                         stdcall get_obj_id_str, ebx,edx
  1261.                         stdcall insert_text,edx
  1262.                         insert_nl
  1263.  
  1264. ;mov esi,...
  1265.                         test_bool_prop ebx,BIT_MOD_TXT_NO_TRAN
  1266.                         jnc @f
  1267.                                 insert_tab
  1268.                                 stdcall insert_text, txt_mov
  1269.                                 insert_reg txt_edi
  1270.                                 insert_coma
  1271.                                 stdcall insert_text_prop, ebx,4 ;梥â ä®­ 
  1272.                                 insert_nl
  1273.                         @@:
  1274.  
  1275.                         insert_tab
  1276.                         stdcall insert_text, txt_i_40
  1277.                         insert_nl
  1278.                 .ob_draw_text:
  1279.  
  1280.                 stdcall dword[tl_node_poi_get_next_info], esi,tree2
  1281.                 pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
  1282.  
  1283.                 jmp .beg_iterat
  1284.         .find_no:
  1285.         popad
  1286.         ret
  1287. endp
  1288.  
  1289. ;ᮧ¤ âì ª®¤ ®¡ê¥­¨ï ¯¥à¥¬¥­­®©
  1290. align 4
  1291. proc get_code_variable, p_obj:dword,o_lev:dword
  1292.         pushad
  1293.                 mov ebx,dword[p_obj]
  1294.                 ;0,1,2 - name,value,comment
  1295.  
  1296.                 mov ecx,dword[o_lev]
  1297.                 cmp cl,0
  1298.                 je .no_tab ;¨§¡¥£ ¥¬ § æ¨ª«¨¢ ­¨ï (0-1 = 2^32-1)
  1299.                 and ecx,0xff
  1300.                 cld
  1301.                 @@:
  1302.                         insert_tab ;ä®à¬¨à®¢ ­¨¥ ®âáâ㯠 ¯¥à¥¤ ¯¥à¥¬¥­­®©
  1303.                 loop @b
  1304.                 .no_tab:
  1305.  
  1306.                 stdcall insert_text_prop, ebx,0 ;¨¬ï ¯¥à¥¬¥­­®©
  1307.                 insert_sp
  1308.  
  1309.                 mov ecx,dword[ebx+u_object.typid-u_object] ;ecx - ®â­®á¨â¥«ì­ë© ¨­¤¥ªá த¨â¥«ì᪮£® ®¡ê¥ªâ  (¢ ¯ ¬ïâ¨)
  1310.                 xor eax,eax
  1311.                 mov ax,[tree2.info_size]
  1312.                 imul ecx,eax ;㬭®¦ ¥¬ ¨­¤¥ªá ­  à §¬¥à áâàãªâãàë
  1313.                 add ecx,[tree2.data_info] ;ecx - 㪠§ â¥«ì ¤ ­­ë¥ த¨â¥«ì᪮£® 㧫 
  1314.  
  1315.                 ;¯à®¢¥àªã ­  ¯à ¢¨«ì­®áâì ecx ???
  1316.  
  1317.                 stdcall insert_text_prop, ecx,0 ;⨯ ¯¥à¥¬¥­­®©
  1318.                 insert_sp
  1319.                 stdcall insert_text_prop, ebx,1 ;§­ ç¥­¨¥
  1320.  
  1321.                 stdcall get_obj_text_col,ebx,2 ;ª®¬¬¥­â à¨©
  1322.                 stdcall str_len,edx
  1323.                 cmp eax,1
  1324.                 jl @f
  1325.                         insert_sp
  1326.                         insert_com
  1327.                         stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
  1328.                 @@:
  1329.                 insert_nl
  1330.  
  1331.         popad
  1332.         ret
  1333. endp
  1334.  
  1335.  
  1336.  
  1337. ;--- ⥪áâ®¢ë¥ ª®­áâ ­âë ---
  1338. txt_str_beg db 39,0
  1339. txt_str_end db 39,',0',0
  1340. txt_coma db ',',0
  1341. txt_skob_o db '(',0
  1342. txt_skob_c db ')',0
  1343. txt_skob_fo db '{',0 ;᪮¡ª  䨣ãà­ ï ®âªà뢠îé ï
  1344. txt_skob_fc db '}',0 ;᪮¡ª  䨣ãà­ ï § ªà뢠îé ï
  1345. txt_i_40 db 'int 0x40',13,0
  1346. txt_0 db '0',0
  1347. txt_1 db '1',0
  1348. txt_2 db '2',0
  1349. txt_3 db '3',0
  1350. txt_4 db '4',0
  1351. txt_8 db '8',0
  1352. txt_plus db '+',0
  1353. txt_minus db '-',0
  1354. ;txt_dol db '$',0
  1355. txt_nl db 13,0
  1356. txt_com db ';',0
  1357. txt_sp db ' ',0
  1358. txt_tab db 9,0
  1359. txt_br db '\',13,9,0
  1360. txt_txt db 'txt_',0
  1361. txt_db db ' db ',0
  1362. txt_dd db ' dd ',0
  1363. txt_rb db ' rb ',0
  1364. txt_dd_0_0 db 9,'dd 0,0',13,0
  1365. txt_mouse_dd db ', mouse_dd, ',0
  1366. txt_times db ':',13,9,'times ',0
  1367. txt_draw_wb:
  1368.         db 13,'align 4',13,'draw_window:',13,'pushad',13,9,'mcall 12,1',13,0
  1369. txt_draw_we:
  1370.         db 9,'mcall 12,2',13,'popad',13,9,'ret',13,0
  1371. txt_sys_dir db 'system_dir_',0
  1372. txt_lib_name db 'lib_name_',0
  1373. txt_lib_path db ' sys_path, library_path, ',0
  1374. txt_sys_err db '‘¨á⥬­ ï ®è¨¡ª ',0
  1375. txt_ll_start db 'l_libs_start:',13,0
  1376. txt_lib db 9,'lib_',0
  1377. txt_ll db 'l_libs ',0
  1378. txt_err_m_f_lib db 'err_msg_found_lib_',0
  1379. txt_head_l db 'head_f_l',0
  1380. txt_err_m_i_lib db 'err_msg_import_',0
  1381. txt_head_i db 'head_f_i',0
  1382. txt_ll_end db 'l_libs_end:',13,0
  1383. ;txt_bit_28 db '0x10000000',0
  1384. txt_bit_29 db '0x20000000',0
  1385. txt_bit_30 db '0x40000000',0
  1386. ;txt_bit_31 db '0x80000000',0
  1387. txt_0x33000000 db '0x33000000',0 ;tmp
  1388. txt_struc db 'struc',0
  1389. txt_t db 't',0
  1390. txt_met_end db '.end',0
  1391. txt_ends db 'ends',13,13,0
  1392. txt_mov db 'mov ',0
  1393. txt_xor db 'xor ',0
  1394. txt_or db 'or  ',0
  1395. txt_cmp db 'cmp ',0
  1396. txt_call db 'call ',0
  1397. txt_jne_f db 'jne @f',0
  1398. txt_a_met db '@@:',0
  1399. txt_ah db 'ah',0
  1400. txt_eax db 'eax',0
  1401. txt_ebx db 'ebx',0
  1402. txt_ecx db 'ecx',0
  1403. txt_edx db 'edx',0
  1404. txt_edi db 'edi',0
  1405. txt_esi db 'esi',0
  1406. txt_align_4 db 'align 4',13,0
  1407. txt_d_poi db ':',0
  1408. txt_ret db 'ret',13,0
  1409. txt_shl_16 db ' shl 16',0
  1410. txt_std_mouse_ed:
  1411.         db 9,'stdcall [edit_box_mouse], ',0
  1412. txt_std_init_cb:
  1413.         db 9,'init_checkboxes2 check_boxes,check_boxes_end',13,0
  1414. txt_std_mouse_cb:
  1415.         db 9,'stdcall [check_box_mouse], ',0
  1416. txt_std_key_ed:
  1417.         db 9,'stdcall [edit_box_key], ',0
  1418. txt_incl:
  1419.         db 'include ',0
  1420.  
  1421. txt_cbox db ' check_box2',0
  1422. txt_cb_b db 13,'check_boxes:',0
  1423. txt_cb_e db 'check_boxes_end:',13,0
  1424.  
  1425. txt_ebox db ' edit_box',0
  1426. txt_editb_draw:
  1427.         db 9,'stdcall [edit_box_draw], ',0
  1428. txt_cbox_draw:
  1429.         db 9,'stdcall [check_box_draw], ',0
  1430.  
  1431. txt_but_1:
  1432. db 'align 4',13,'button:',13,9,'mcall 17',13
  1433. txt_but_2:
  1434. db 9,'cmp ah,1',13,9,'jne still',13,'.exit:',13,9,'mcall -1',13
  1435. txt_but_3:
  1436.  
  1437. txt_key_1:
  1438. db 'align 4',13,'key:',13,9,'mcall 2',13
  1439. txt_key_2:
  1440. db 9,'jmp still',13
  1441. txt_key_3:
  1442.  
  1443. ;¯®«ãç ¥¬ ¯®à浪®¢ë© ­®¬¥à ®¡ê¥ªâ  ®â­®á¨â¥«ì­® ¯ ¬ïâ¨ í«¥¬¥­â  tree2
  1444. ;output:
  1445. ; txt_buf - áâப  á ­®¬¥à®¬ ®¡ê¥ªâ 
  1446. align 4
  1447. proc get_obj_id_str, p_obj:dword, txt_buf:dword
  1448.         push eax ecx edx
  1449.         mov eax,dword[p_obj]
  1450.         sub eax,[tree2.data_info]
  1451.         xor edx,edx
  1452.         xor ecx,ecx
  1453.         mov cx,word[tree2.info_size]
  1454.         div ecx
  1455.  
  1456.         mov edx,dword[txt_buf]
  1457.         mov byte[edx],0
  1458.         stdcall str_cat_value,edx,eax
  1459.         pop edx ecx eax
  1460.         ret
  1461. endp
  1462.  
  1463. ;¯®«ãç ¥¬ ¯®à浪®¢ë© ­®¬¥à ®¡ê¥ªâ  ®â­®á¨â¥«ì­® ¯ ¬ïâ¨ í«¥¬¥­â  tree2
  1464. ;output:
  1465. ; eax - ­®¬¥à ®¡ê¥ªâ 
  1466. align 4
  1467. proc get_obj_id, p_obj:dword
  1468.         push ecx edx
  1469.         mov eax,dword[p_obj]
  1470.         sub eax,[tree2.data_info]
  1471.         xor edx,edx
  1472.         xor ecx,ecx
  1473.         mov cx,word[tree2.info_size]
  1474.         div ecx
  1475.         pop edx ecx
  1476.         ret
  1477. endp
  1478.  
  1479. ;--- ⥪áâ®¢ë¥ ä㭪樨 ---
  1480.  
  1481. ;¢ë¡¨à ¥¬ áâப㠨§ ¬ á¨¢ , ¯® 㪠§ ­­®¬ã ¨­¤¥ªáã
  1482. ;input:
  1483. ; str - 㪠§ â¥«ì ­  ¬ á¨¢ áâப
  1484. ; ind - ¨­¤¥ªá ¨áª®¬®© áâப¨
  1485. ;output:
  1486. ; edi - 㪠§ â¥«ì ­  ­ ©¤¥­ãî áâபã
  1487. align 4
  1488. proc get_string_by_ind, str:dword, ind:dword
  1489. push eax ebx ecx
  1490.         mov edi,[str]
  1491.         mov ebx,[ind]
  1492.         xor al,al ;0 - ᨬ¢®« ª®­æ  áâப¨
  1493.         @@:
  1494.                 cmp ebx,0
  1495.                 jle @f ;¥á«¨ ­ ©¤¥­  áâப  á 㪠§ ­­ë¬ ¨­¤¥ªá®¬
  1496.                 xor ecx,ecx
  1497.                 dec ecx ;ecx - ç¨á«® ¯à®á¬ âਢ ¥¬ëå ¡ ©â
  1498.                 cld
  1499.                 repne scasb ;¨é¥¬ ª®­¥æ áâப¨ (al=0)
  1500.                 cmp byte[edi],0
  1501.                 je @f ;¥á«¨ á«¥¤ãî饩 áâப¨ ­¥â ¢ë室 ¨§ 横« 
  1502.                 dec ebx
  1503.                 jmp @b
  1504.         @@:
  1505. pop ecx ebx eax
  1506.         ret
  1507. endp
  1508.  
  1509. align 4
  1510. proc mem_clear, mem:dword, len:dword
  1511.         push eax ecx edi
  1512.         cld
  1513.         xor al,al
  1514.         mov edi, dword[mem]
  1515.         mov ecx, dword[len]
  1516.         repne stosb
  1517.         pop edi ecx eax
  1518.         ret
  1519. endp
  1520.  
  1521. align 4
  1522. proc str_cat, str1:dword, str2:dword
  1523.         push eax ecx edi esi
  1524.         mov esi,dword[str2]
  1525.         stdcall str_len,esi
  1526.         mov ecx,eax
  1527.         inc ecx
  1528.         mov edi,dword[str1]
  1529.         stdcall str_len,edi
  1530.         add edi,eax
  1531.         cld
  1532.         repne movsb
  1533.         pop esi edi ecx eax
  1534.         ret
  1535. endp
  1536.  
  1537. align 4
  1538. proc str_cat_value, str1:dword, value:dword
  1539.         pushad
  1540.         mov edi,[str1]
  1541.         stdcall str_len,edi
  1542.         add edi,eax
  1543.         mov eax,[value]
  1544.         call tl_convert_to_str
  1545.         popad
  1546.         ret
  1547. endp
  1548.  
  1549. ;output:
  1550. ; eax = strlen
  1551. align 4
  1552. proc str_len, str1:dword
  1553.         mov eax,[str1]
  1554.         @@:
  1555.                 cmp byte[eax],0
  1556.                 je @f
  1557.                 inc eax
  1558.                 jmp @b
  1559.         @@:
  1560.         sub eax,[str1]
  1561.         ret
  1562. endp
  1563.  
  1564. ;input:
  1565. ; eax = value
  1566. ; edi = string buffer
  1567. align 4
  1568. tl_convert_to_str:
  1569.         pushad
  1570.         stdcall mem_clear,edi,12
  1571.         call .str
  1572.         popad
  1573.         ret
  1574.  
  1575. align 4
  1576. .str:
  1577.         mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬  áç¨á«¥­¨ï ¨§¬¥­ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤­ë¥ ¯ à ¬¥âàë eax - ç¨á«®
  1578.                 ;¯à¥à¥¢®¤ ç¨á«  ¢ ASCII áâப㠢室­ë¥ ¤ ­­ë¥ ecx=á¨á⥬  áç¨á«¥­ï edi  ¤à¥á ªã¤  § ¯¨á뢠âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®­¥æ ¯¥à¥¬¥­­®©
  1579.         cmp eax,ecx  ;áà ¢­¨âì ¥á«¨ ¢ eax ¬¥­ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ ­  @@-1 â.¥. ­  pop eax
  1580.         jb @f
  1581.                 xor edx,edx ;®ç¨áâ¨âì edx
  1582.                 div ecx     ;à §¤¥«¨âì - ®áâ â®ª ¢ edx
  1583.                 push edx    ;¯®«®¦¨âì ¢ á⥪
  1584.                 ;dec edi    ;ᬥ饭¨¥ ­¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®­æ  áâப¨
  1585.                 call .str   ;¯¥à¥©â¨ ­  á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥­â  ¯®ª  ¢ eax ­¥ áâ ­¥â ¬¥­ìè¥ ç¥¬ ¢ ecx
  1586.                 pop eax
  1587.         @@: ;cmp al,10 ;¯à®¢¥à¨âì ­¥ ¬¥­ìè¥ «¨ §­ ç¥­¨¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥­ï 10 ¤ ­­ ï ª®¬ ­¤  - «¨è­ ï))
  1588.         or al,0x30  ;¤ ­­ ï ª®¬ ­¤  ª®à®ç¥  ç¥¬ ¤¢¥ ¢ëè¥
  1589.         stosb       ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祪㠯 ¬ï⨠es:edi
  1590.         ret