Subversion Repositories Kolibri OS

Rev

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

  1. use32
  2.         org 0
  3.         db 'MENUET01'
  4.         dd 1,start,i_end,mem,stacktop,buf_cmd_lin,sys_path
  5.  
  6. include '../../KOSfuncs.inc'
  7. include '../../macros.inc'
  8. include '../../proc32.inc'
  9. include '../../load_lib.mac'
  10. include '../../develop/libraries/box_lib/trunk/box_lib.mac'
  11. include '../../dll.inc'
  12. include '../../system/skincfg/trunk/kglobals.inc'
  13. include '../../system/skincfg/trunk/unpacker.inc'
  14. include 'strlen.inc'
  15. include 'obj_codes.inc'
  16.  
  17. @use_library mem.Alloc,mem.Free,mem.ReAlloc, dll.Load
  18.  
  19. hed db 'kol_f_edit 29.09.20',0
  20.  
  21. sizeof.TreeList equ 20 ;need for element 'tree_list'
  22.  
  23. BUF_STRUCT_SIZE equ 21
  24. buf2d_data equ dword[edi] ;¤ ­­ë¥ ¡ãä¥à  ¨§®¡à ¦¥­¨ï
  25. buf2d_w equ dword[edi+8] ;è¨à¨­  ¡ãä¥à 
  26. buf2d_h equ dword[edi+12] ;¢ëá®â  ¡ãä¥à 
  27. buf2d_l equ word[edi+4] ;®âáâ㯠᫥¢ 
  28. buf2d_t equ word[edi+6] ;®âáâ㯠ᢥàåã
  29. buf2d_size_lt equ dword[edi+4] ;®âáâ㯠᫥¢  ¨ á¯à ¢  ¤«ï ¡ãä¥à 
  30. buf2d_color equ dword[edi+16] ;梥â ä®­  ¡ãä¥à 
  31. buf2d_bits equ byte[edi+20] ;ª®«¨ç¥á⢮ ¡¨â ¢ 1-© â®çª¥ ¨§®¡à ¦¥­¨ï
  32.  
  33.  
  34. MAX_CED_OBJECTS equ 200
  35. MAX_OPT_FIELDS equ 11
  36. MAX_OBJ_TYPES equ 17 ;¬ ªá¨¬ «ì­®¥ ç¨á«® ®¡ê¥ªâ®¢
  37. MAX_OBJ_CAPTIONS equ 1000 ;à §¬¥à ¤®¯®«­¨â¥«ì­ëå ¯®¤¯¨á¥© ¯®¤¯¨á¥©
  38. WND_CAPT_COLOR equ 0xb0d0ff
  39. BUF_SIZE equ 1000
  40.  
  41. ;modif
  42. BIT_MOD_ACI equ 0 ;¯¥à¢®­ ç «ì­ë¥ ­ áâனª¨ í«¥¬¥­â®¢
  43. BIT_MOD_ACM equ 1 ;ᮡëâ¨ï ®â ¬ëè¨
  44. BIT_MOD_ACD equ 2 ;¤ ­­ë¥ ®¡ê¥ªâ®¢
  45. BIT_MOD_ABU equ 3 ;á¢ï§ë¢ ­¨¥ ª­®¯®ª
  46. BIT_MOD_WI_CAPT equ 0 ;áâ¨«ì ®ª­  ¯®¤¯¨áì
  47. BIT_MOD_WI_CORD_OTN_CL_OBL equ 1 ;áâ¨«ì ®ª­  ª®®à¤¨­ âë ®â­®á¨â¥«ì­® ª«¨¥­â᪮© ®¡« áâ¨
  48. BIT_MOD_WI_REDR equ 2 ;áâ¨«ì ®ª­  ¯¥à¥à¨á®¢ª  ®ª­ 
  49. BIT_MOD_WI_GRAD equ 3 ;áâ¨«ì ®ª­  £à ¤¨¥­â
  50. BIT_MOD_CHE equ 0 ; ch_flag_en - ¢ë¡à ­ CheckBox
  51. BIT_MOD_CHE_T equ 1 ;ᢥàåã
  52. BIT_MOD_CHE_M equ 2 ;¯® 業âàã
  53. BIT_MOD_CHE_B equ 3 ;á­¨§ã
  54. BIT_MOD_TXT_ASCII_0 equ 0 ;⥪áâ § ª ­ç¨¢. 0
  55. BIT_MOD_TXT_NO_TRAN equ 1 ;⥪á⠯஧à ç­ë©
  56. BIT_MOD_TXT_CHAR2 equ 2 ;⥪áâ 2-¬ èà¨ä⮬
  57. BIT_MOD_EDIT_FOC equ 0 ;EditBox ¢ 䮪ãá¥
  58. BIT_MOD_EDIT_FIO equ 1 ;
  59. ;CPP_MOD_RE_GR equ 1 ;£à ¤¨¥­â­ë© ¯àאַ㣮«ì­¨ª
  60. BIT_MOD_BUT_NFON equ 0 ;á⨫ì Button ­¥ à¨á®¢ âì ª­®¯ªã
  61. BIT_MOD_BUT_NBORD equ 1 ;á⨫ì Button ­¥ à¨á®¢ âì £à ­¨æã
  62. BIT_MOD_IMPORT_FUNCT_COMMENT equ 0 ;ª®¬¥­â¨à®¢ âì äã­ªæ¨î
  63.  
  64. macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥­¨©
  65.         ;path - ¬®¦¥â ¡ëâì ¯¥à¥¬¥­­®© ¨«¨ áâப®¢ë¬ ¯ à ¬¥â஬
  66.         if path eqtype '' ;¯à®¢¥à塞 § ¤ ­ «¨ áâப®© ¯ à ¬¥âà path
  67.                 jmp @f
  68.                         local .path_str
  69.                         .path_str db path ;ä®à¬¨à㥬 «®ª «ì­ãî ¯¥à¥¬¥­­ãî
  70.                         db 0
  71.                 @@:
  72.                 ;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬
  73.                 copy_path .path_str,[32],file_name,0
  74.         else
  75.                 copy_path path,[32],file_name,0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
  76.         end if
  77.  
  78.         stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
  79.         mov [buf],eax
  80.  
  81.         mov [run_file_70.Function], 0
  82.         mov [run_file_70.Position], 0
  83.         mov [run_file_70.Flags], 0
  84.         mov [run_file_70.Count], dword size
  85.         m2m [run_file_70.Buffer], eax
  86.         mov byte[run_file_70+20], 0
  87.         mov [run_file_70.FileName], file_name
  88.         mcall 70,run_file_70 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
  89.         cmp ebx,0xffffffff
  90.         je @f
  91.                 ;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
  92.                 stdcall [img_decode], [buf],ebx,0
  93.                 mov [image_data],eax
  94.                 ;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥­¨¥ ª ä®à¬ âã rgb
  95.                 stdcall [img_to_rgb2], [image_data],[buf]
  96.                 ;㤠«ï¥¬ ¢à¥¬¥­­ë© ¡ãä¥à image_data
  97.                 stdcall [img_destroy], [image_data]
  98.         @@:
  99. }
  100.  
  101. struct FileInfoBlock
  102.         Function dd ?
  103.         Position dd ?
  104.         Flags    dd ?
  105.         Count    dd ?
  106.         Buffer   dd ?
  107.         rezerv   db ?
  108.         FileName dd ?
  109. ends
  110.  
  111. struct object
  112.         id dd ? ;¨¤¥­â¨ä¨ª â®à ®¡ê¥ªâ 
  113.         txt rb MAX_LEN_OBJ_TXT ;⥪áâ®¢ë¥ á¢®©á⢠
  114.         lvl db 0
  115.         clo db 0
  116.         typid dd ? ;­®¬¥à ®¡ê¥ªâ  ®¯à¥¤¥«ïî饣® ⨯ ¯¥à¥¬¥­­®©
  117.         modif dd ? ;¡¨â®¢ë¥ ᢮©á⢠
  118. ends
  119.  
  120. struct ObjOpt
  121.         dd ?
  122.         bl_type db ?
  123.         graph db ?
  124.         info rb 30
  125.         caption rb MAX_OPT_CAPTION
  126.         Col rw MAX_OPT_FIELDS
  127.         img rw MAX_OPT_FIELDS ;¨­¤¥ªáë ª à⨭®ª (¢ ä ©«¥ 'icon.bmp')
  128.         bit_prop dd 0 ;¡¨â®¢ë¥ ᢮©á⢠ (¯®¤¯¨á¨, ­ §¢ ­¨ï)
  129.         bit_val dd 0 ;¡¨â®¢ë¥ ᢮©á⢠ (§­ ç¥­¨ï, ª®­áâ ­âë)
  130. ends
  131.  
  132. SKIN_H equ 22
  133. SKIN_W1 equ 5
  134. SKIN_W2 equ 7
  135. SKIN_W3 equ 23
  136. fn_skin_1 db 'left.bmp',0
  137. fn_skin_2 db 'base.bmp',0
  138. fn_skin_3 db 'oper.bmp',0
  139. IMAGE_FILE_SKIN1_SIZE equ 3*(SKIN_W1+3)*SKIN_H+54
  140. IMAGE_FILE_SKIN2_SIZE equ 3*(SKIN_W2+3)*SKIN_H+54
  141. IMAGE_FILE_SKIN3_SIZE equ 3*(SKIN_W3+3)*SKIN_H+54
  142.  
  143. IMAGE_FILE_FONT1_SIZE equ 96*144*3 ;à §¬¥à ä ©«  á 1-¬ á¨á⥬­ë¬ èà¨ä⮬
  144.  
  145. fn_icon db 'icon.bmp',0
  146. count_main_icons equ 35 ;ç¨á«® ¨ª®­®ª ¢ ä ©«¥ icon.bmp
  147. bmp_icon rb 0x300*count_main_icons
  148.  
  149. TREE_ICON_SYS16_BMP_SIZE equ 256*3*11+54 ;à §¬¥à bmp ä ©«  á á¨á⥬­ë¬¨ ¨ª®­ª ¬¨
  150. icon_tl_sys dd 0 ;㪠§ â¥¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï á¨á⥬­ëå ¨ª®­®ª
  151. icon_font_s1 dd 0 ;㪠§ â¥«ì ­  ¢à¥¬¥­­ãî ¯ ¬ïâì ¤«ï § £à㧪¨ èà¨äâ 
  152.  
  153. fn_syntax db 'asm.syn',0 ;¨¬ï § £à㦠¥¬®£® ä ©«  ᨭ⠪á¨á 
  154.  
  155. ;¬ ªà®á ¤«ï ¯à®¢¥àª¨ ¡¨â®¢®£® ᢮©á⢠
  156. macro test_bool_prop obj_reg,n_prop
  157. {
  158.         bt dword[obj_reg+u_object.modif-u_object],n_prop
  159. }
  160.  
  161. include 'ced_wnd_m.inc'
  162. include 'ced_wnd_prop.inc' ;ä ©« á äã­ªæ¨ï¬¨ ®ª­  ᢮©á⢠®¡ê¥ªâ 
  163. include 'ced_constr.inc' ;ä ©« á äã­ªæ¨ï¬¨ ®ª­  ª®­áâàãªâ®à 
  164. include 'ced_code_g.inc' ;ä ©« á äã­ªæ¨ï¬¨ £¥­¥à¨à®¢ ­¨ï ª®¤®¢
  165.  
  166. align 4
  167. start:
  168.         load_libraries l_libs_start,load_lib_end
  169.  
  170.         ;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨« áì ­ è  «¨¡ 
  171.         mov     ebp,lib0
  172.         cmp     dword [ebp+ll_struc_size-4],0
  173.         jz      @f
  174.                 mcall -1 ;exit not correct
  175.         @@:
  176.         mov     ebp,lib1
  177.         cmp     dword [ebp+ll_struc_size-4],0
  178.         jz      @f
  179.                 mcall -1 ;exit not correct
  180.         @@:
  181.         mov     ebp,lib2
  182.         cmp     dword [ebp+ll_struc_size-4],0
  183.         jz      @f
  184.                 mcall -1 ;exit not correct
  185.         @@:
  186.         mov     ebp,lib3
  187.         cmp     dword [ebp+ll_struc_size-4],0
  188.         jz      @f
  189.                 mcall -1 ;exit not correct
  190.         @@:
  191.  
  192.         ;§ ¤ ­¨¥ à §¬¥à®¢ ¯®«¥© ᮠ᢮©á⢠¬¨
  193.         mov eax,prop_edits_top
  194.         mov ebx,16+6 ;è¨à¨­  ¨ª®­ª¨ + ®âáâã¯ë
  195.         mov edi,edit2
  196.         @@:
  197.                 mov ed_top,eax ;®âáâ㯠ᢥàåã
  198.                 mov ed_left,ebx ;®âáâ㯠᫥¢ 
  199.                 add edi,ed_struc_size
  200.                 add eax,prop_edits_height
  201.                 cmp edi,prop_wnd_edits_end
  202.                 jl @b
  203.  
  204.         stdcall [buf2d_create], buf_fon
  205.  
  206.         mcall 48,3,sc,sizeof.system_colors
  207.         mcall 40,0x27
  208.  
  209.         stdcall [tl_data_init], tree1
  210.         stdcall [tl_data_init], tree2
  211.  
  212.         copy_path fn_icon,sys_path,file_name,0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
  213.         mov [run_file_70.Function], 0
  214.         mov [run_file_70.Position], 54
  215.         mov [run_file_70.Flags], 0
  216.         mov [run_file_70.Count], 0x300*count_main_icons
  217.         mov [run_file_70.Buffer], bmp_icon
  218.         mov [run_file_70.rezerv], 0
  219.         mov [run_file_70.FileName], file_name
  220.         mcall 70,run_file_70
  221.  
  222.         cmp ebx,-1
  223.         mov [err_ini0],1
  224.         je @f ;if open file
  225.                 mov [err_ini0],0
  226.                 mov dword[tree1.data_img],bmp_icon
  227.                 mov dword[tree2.data_img],bmp_icon
  228.         @@:
  229.  
  230.         ;á¨á⥬­ë¥ ¨ª®­ª¨ 16*16 ¤«ï tree_list
  231.         load_image_file 'tl_sys_16.png', icon_tl_sys,TREE_ICON_SYS16_BMP_SIZE
  232.         ;¥á«¨ ¨§®¡à ¦¥­¨¥ ­¥ ®âªàë«®áì, â® ¢ icon_tl_sys ¡ã¤ãâ
  233.         ;­¥ ¨­¨æ¨ «¨§¨à®¢ ­­ë¥ ¤ ­­ë¥, ­® ®è¨¡ª¨ ­¥ ¡ã¤¥â, â. ª. ¡ãä¥à ­ã¦­®£® à §¬¥à 
  234.         mov eax,dword[icon_tl_sys]
  235.         mov dword[tree1.data_img_sys],eax
  236.         mov dword[tree2.data_img_sys],eax
  237.  
  238.         ;1-© ä ©« ᪨­ 
  239.         load_image_file fn_skin_1, icon_font_s1,IMAGE_FILE_SKIN1_SIZE
  240.         stdcall [buf2d_create_f_img], buf_skin1,[icon_font_s1] ;ᮧ¤ ¥¬ ¡ãä¥à
  241.         stdcall mem.Free,[icon_font_s1] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
  242.         ;2-© ä ©« ᪨­ 
  243.         load_image_file fn_skin_2, icon_font_s1,IMAGE_FILE_SKIN2_SIZE
  244.         stdcall [buf2d_create_f_img], buf_skin2,[icon_font_s1] ;ᮧ¤ ¥¬ ¡ãä¥à
  245.         stdcall mem.Free,[icon_font_s1] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
  246.         ;3-© ä ©« ᪨­ 
  247.         load_image_file fn_skin_3, icon_font_s1,IMAGE_FILE_SKIN3_SIZE
  248.         stdcall [buf2d_create_f_img], buf_skin3,[icon_font_s1] ;ᮧ¤ ¥¬ ¡ãä¥à
  249.         stdcall mem.Free,[icon_font_s1] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
  250.  
  251.         ;ᨬ¢®«ë 1-£® á¨á⥬­®£® èà¨äâ 
  252.         load_image_file 'font6x9.bmp', icon_font_s1,IMAGE_FILE_FONT1_SIZE
  253.         stdcall [buf2d_create_f_img], buf_font,[icon_font_s1] ;ᮧ¤ ¥¬ ¡ãä¥à
  254.         stdcall mem.Free,[icon_font_s1] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
  255.         stdcall [buf2d_conv_24_to_8], buf_font,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç­®á⨠8 ¡¨â
  256.         stdcall [buf2d_convert_text_matrix], buf_font
  257.  
  258.  
  259.         copy_path fn_obj_opt,sys_path,fp_obj_opt,0
  260.         ;load options file
  261.         mov [run_file_70.Position], 0
  262.         mov [run_file_70.Count], sizeof.ObjOpt*MAX_OBJ_TYPES+MAX_OBJ_CAPTIONS
  263.         mov [run_file_70.Buffer], obj_opt
  264.         mov [run_file_70.FileName], fp_obj_opt
  265.         mcall 70,run_file_70
  266.  
  267.         cmp ebx,-1
  268.         mov [err_ini1],1
  269.         je .open_end ;jmp if not open file
  270.                 mov [err_ini1],0
  271.  
  272.                 mov eax,obj_opt ;¤®¡ ¢«ï¥¬ ®¡ê¥ªâë
  273.                 @@:
  274.                         mov ebx,dword[eax]
  275.                         cmp ebx,0
  276.                         je @f
  277.                         ;xor ecx,ecx ;¢ ecx ¡ã¤¥â ¨­¤¥ªá ¨ª®­ª¨
  278.                         mov cx,word[eax+obj_opt.img-obj_opt]
  279.                         cmp cx,0
  280.                         jge .zero
  281.                                 xor cx,cx ;çâ®-¡ë ­¥ £«î稫® á ®âà¨æ â¥«ì­ë¬ ¨­¤¥ªá®¬
  282.                         .zero:
  283.                         shl ecx,16
  284.                         stdcall dword[tl_node_add], tree1,ecx,eax ;¤®¡ ¢«ï¥¬ ­ §¢ ­¨¥ ®¡ê¥ªâ 
  285.                         stdcall dword[tl_cur_next], tree1 ;¯¥à¥­®á¨¬ ªãàá®à ¢­¨§, çâ®-¡ë ­¥ ¯®¬¥­ï«áï ¯®à冷ª
  286.                         add eax,sizeof.ObjOpt ;¯¥à¥å®¤ ­  á«¥¤ãî騩 ®¡ê¥ªâ
  287.                         jmp @b
  288.                 @@:
  289.                 stdcall dword[tl_cur_beg], tree1 ;¯¥à¥­®á¨¬ ªãàá®à ¢¢¥àå
  290.  
  291.         .open_end:
  292.  
  293.         stdcall [OpenDialog_Init],OpenDialog_data ;¯®¤£®â®¢ª  ¤¨ «®£ 
  294.         stdcall [ted_init], tedit0
  295.         copy_path fn_syntax,sys_path,file_name,0
  296.  
  297.         ; *** init syntax file ***
  298.         ; ¯à®¢¥à塞 à §¬¥à ä ©«  ᨭ⠪á¨á 
  299.         mov [run_file_70.Function], 5
  300.         mov [run_file_70.Position], 0
  301.         mov [run_file_70.Flags], 0
  302.         mov dword[run_file_70.Count], 0
  303.         mov dword[run_file_70.Buffer], open_b
  304.         mov byte[run_file_70+20], 0
  305.         mov dword[run_file_70.FileName], file_name
  306.         mcall 70,run_file_70
  307.         cmp eax,0
  308.         jne @f
  309.  
  310.         mov edi,tedit0
  311.         mov ecx,dword[open_b+32] ;+32 qword: à §¬¥à ä ©«  ¢ ¡ ©â å
  312.         mov ted_syntax_file_size,ecx
  313.  
  314.         stdcall mem.Alloc,ecx ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ä ©«  ᨭ⠪á¨á 
  315.         mov ted_syntax_file,eax
  316.  
  317.         ;¯à®¡ã¥¬ ®âªàëâì ä ©« ᨭ⠪á¨á 
  318.         call open_unpac_synt_file
  319.         jmp .end_0
  320.         @@:
  321.                 notify_window_run txt_not_syntax_file
  322.         .end_0:
  323.  
  324.         ;get cmd line
  325.         cmp [buf_cmd_lin],0
  326.         je @f ;if file names exist
  327.                 mov esi,buf_cmd_lin
  328.                 call strlen ;eax=strlen
  329.                 mov edi,[edit1.text]
  330.                 mov [edit1.size],eax
  331.                 mov ecx,eax
  332.                 rep movsb
  333.                 call but_open_proj
  334.         @@:
  335.  
  336.  
  337.  
  338. align 4
  339. red_win:
  340.         call draw_window
  341.  
  342. align 4
  343. still:
  344.         mcall 10
  345.  
  346.         cmp al,1
  347.         jne @f
  348.                 call draw_window
  349.         @@:
  350.         cmp al,2
  351.         jz key
  352.         cmp al,3
  353.         jz button
  354.         cmp al,6
  355.         jne @f
  356.                 call mouse
  357.         @@:
  358.  
  359.         jmp still
  360.  
  361. align 4
  362. draw_window:
  363. pushad
  364.         mcall 12,1
  365.  
  366.         xor eax,eax
  367.         mov ebx,20*65536+670
  368.         mov ecx,20*65536+370
  369.         mov edx,[sc.work]
  370.         or  edx,0x33000000
  371.         mov edi,hed
  372.         int 0x40
  373.  
  374.         mov eax,8 ;button 'Open Project'
  375.         mov esi,0x80ff
  376.         mov ebx,230*65536+18
  377.         mov ecx,5*65536+18
  378.         mov edx,5
  379.         int 0x40
  380.         stdcall draw_icon, 22,231,6 ;22 - open
  381.  
  382.         ;button 'Save Project'
  383.         mov ebx,250*65536+18
  384.         mov ecx,5*65536+18
  385.         mov edx,6
  386.         int 0x40
  387.         stdcall draw_icon, 17,251,6 ;17 - save
  388.  
  389.         ;button 'Show Constructor'
  390.         mov ebx,310*65536+18
  391.         mov ecx,5*65536+18
  392.         mov edx,11
  393.         int 0x40
  394.         stdcall draw_icon, 12,311,6 ;12 - window
  395.  
  396.         ;button 'Show Code'
  397.         mov ebx,330*65536+18
  398.         mov edx,12
  399.         int 0x40
  400.         stdcall draw_icon, 11,331,6 ;11 - text
  401.  
  402.         ;button 'Update: Code, Constructor'
  403.         mov ebx,350*65536+18
  404.         mov edx,13
  405.         int 0x40
  406.         stdcall draw_icon, 32,351,6 ;32 - update
  407.  
  408.         ;button 'Save Code'
  409.         mov ebx,370*65536+18
  410.         mov edx,14
  411.         int 0x40
  412.         stdcall draw_icon, 17,371,6 ;17 - save
  413.  
  414.         ;button ']P'
  415.         mov ebx,390*65536+18
  416.         mov edx,15
  417.         int 0x40
  418.         stdcall draw_icon, 18,391,6 ;18 - §­ ª ª®­æ   ¡§ æ 
  419.  
  420.         ;button 'Show color text'
  421.         mov ebx,410*65536+18
  422.         mov edx,16
  423.         int 0x40
  424.         stdcall draw_icon, 19,411,6
  425.  
  426.         ;button 'Add Object'
  427.         mov ebx,125*65536+18
  428.         mov ecx,30*65536+18
  429.         mov edx,31
  430.         int 0x40
  431.         stdcall draw_icon, 14,126,31 ;14 - add object
  432.  
  433.         ;button 'Move Up'
  434.         mov ebx,155*65536+18
  435.         mov edx,21
  436.         int 0x40
  437.         stdcall draw_icon, 23,156,31 ;23 - move up
  438.  
  439.         ;button 'Move Down'
  440.         mov ebx,175*65536+18
  441.         mov edx,22
  442.         int 0x40
  443.         stdcall draw_icon, 24,176,31 ;24 - move down
  444.  
  445.         ;button 'Copy'
  446.         mov ebx,195*65536+18
  447.         mov edx,23
  448.         int 0x40
  449.         stdcall draw_icon, 30,196,31 ;30 - copy
  450.  
  451.         ;button 'Paste'
  452.         mov ebx,215*65536+18
  453.         mov edx,24
  454.         int 0x40
  455.         stdcall draw_icon, 31,216,31 ;31 - paste
  456.  
  457.         ;button 'Property'
  458.         mov ebx,235*65536+18
  459.         mov edx,25
  460.         int 0x40
  461.         stdcall draw_icon, 7,236,31 ;7 - property
  462.  
  463.         ;button 'Undo'
  464.         mov ebx,255*65536+18
  465.         mov edx,26
  466.         int 0x40
  467.         stdcall draw_icon, 33,256,31 ;33 - undo
  468.  
  469.         ;button 'Redo'
  470.         mov ebx,275*65536+18
  471.         mov edx,27
  472.         int 0x40
  473.         stdcall draw_icon, 34,276,31 ;34 - redo
  474.  
  475. ; 10 30 50 70 90
  476.  
  477.         cmp [err_opn],1
  478.         jne @f
  479.                 mcall 4,10*65536+35,0x80ff0000,txtErrOpen
  480.         @@:
  481.  
  482.         stdcall [edit_box_draw], edit1
  483.         stdcall [edit_box_draw], edit_sav
  484.  
  485.         mov dword[w_scr_t1.all_redraw],1
  486.         ;stdcall [scrollbar_ver_draw], w_scr_t1
  487.         stdcall [tl_draw], tree1
  488.         mov dword[w_scr_t2.all_redraw],1
  489.         ;stdcall [scrollbar_ver_draw], w_scr_t2
  490.         stdcall [tl_draw], tree2
  491.  
  492.         cmp byte[show_mode],0 ;ãá«®¢¨¥ ¢¨¤¨¬®á⨠®ª­  ª®­áâàãªâ®à 
  493.         jne @f
  494.                 stdcall [buf2d_draw], buf_fon
  495.         @@:
  496.         cmp byte[show_mode],1 ;ãá«®¢¨¥ ¢¨¤¨¬®á⨠⥪á⮢®£® ®ª­ 
  497.         jne @f
  498.                 stdcall [ted_draw], tedit0
  499.         @@:
  500.         mcall 12,2
  501. popad
  502.         ret
  503.  
  504. align 4
  505. mouse:
  506.         stdcall [edit_box_mouse], edit1
  507.         stdcall [edit_box_mouse], edit_sav
  508.         stdcall [tl_mouse], tree1
  509.         stdcall [tl_mouse], tree2
  510.         cmp byte[show_mode],1 ;ãá«®¢¨¥ ¢¨¤¨¬®á⨠⥪á⮢®£® ®ª­ 
  511.         jne @f
  512.                 stdcall [ted_mouse], tedit0
  513.         @@:
  514.         ret
  515.  
  516.  
  517. align 4
  518. key:
  519.         mcall 2
  520.         stdcall [edit_box_key], edit1
  521.         stdcall [edit_box_key], edit_sav
  522.         stdcall [tl_key], tree1
  523.         stdcall [tl_key], tree2
  524.  
  525.         jmp still
  526.  
  527. align 4
  528. button:
  529.         mcall 17
  530.         cmp ah,5
  531.         jne @f
  532.                 call but_open_proj
  533.                 jmp still
  534.         @@:
  535.         cmp ah,6
  536.         jne @f
  537.                 call but_save_proj
  538.                 jmp still
  539.         @@:
  540.         ;cmp ah,10
  541.         ;jne @f
  542.                 ;call but_element_change
  543.         ;@@:
  544.         cmp ah,11
  545.         jne @f
  546.                 call but_show_constructor
  547.                 jmp still
  548.         @@:
  549.         cmp ah,12
  550.         jne @f
  551.                 call but_show_code
  552.                 jmp still
  553.         @@:
  554.         cmp ah,13
  555.         jne @f
  556.                 call but_update
  557.                 jmp still
  558.         @@:
  559.         cmp ah,14
  560.         jne @f
  561.                 call but_save_asm
  562.                 jmp still
  563.         @@:
  564.         cmp ah,15
  565.         jne @f
  566.                 call but_show_invis
  567.                 jmp still
  568.         @@:
  569.         cmp ah,16
  570.         jne @f
  571.                 call but_show_syntax
  572.                 jmp still
  573.         @@:
  574.         cmp ah,21
  575.         jne @f
  576.                 call but_obj_move_up
  577.                 jmp still
  578.         @@:
  579.         cmp ah,22
  580.         jne @f
  581.                 call but_obj_move_down
  582.                 jmp still
  583.         @@:
  584.         cmp ah,23
  585.         jne @f
  586.                 call but_obj_copy
  587.                 jmp still
  588.         @@:
  589.         cmp ah,24
  590.         jne @f
  591.                 call but_obj_paste
  592.                 jmp still
  593.         @@:
  594.         cmp ah,25
  595.         jne @f
  596.                 call on_file_object_select
  597.                 jmp still
  598.         @@:
  599.         cmp ah,26
  600.         jne @f
  601.                 stdcall [tl_info_undo], tree2
  602.                 stdcall [tl_draw], tree2
  603.                 jmp still
  604.         @@:
  605.         cmp ah,27
  606.         jne @f
  607.                 stdcall [tl_info_redo], tree2
  608.                 stdcall [tl_draw], tree2
  609.                 jmp still
  610.         @@:
  611.         cmp ah,31
  612.         jne @f
  613.                 call on_add_object
  614.                 jmp still
  615.         @@:
  616.         cmp ah,1
  617.         jne still
  618. .exit:
  619.         stdcall mem.Free,[icon_tl_sys]
  620.         mov dword[tree1.data_img],0
  621.         mov dword[tree2.data_img],0
  622.         mov dword[tree1.data_img_sys],0
  623.         mov dword[tree2.data_img_sys],0
  624.         stdcall dword[tl_data_clear], tree1
  625.         stdcall dword[tl_data_clear], tree2
  626.         stdcall [buf2d_delete],buf_fon ;㤠«ï¥¬ ¡ãä¥à
  627.         stdcall [buf2d_delete],buf_font ;㤠«ï¥¬ ¡ãä¥à  
  628.         stdcall [buf2d_delete],buf_skin1
  629.         stdcall [buf2d_delete],buf_skin2
  630.         stdcall [buf2d_delete],buf_skin3
  631.         stdcall [ted_delete], tedit0
  632.         cmp dword[unpac_mem],0
  633.         je @f
  634.                 stdcall mem.Free,[unpac_mem]
  635.         @@:
  636.         mcall -1
  637.  
  638. align 4
  639. open_file_data dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï ®âªàëâ¨ï ä ©«®¢
  640. open_file_size dd 0 ;à §¬¥à ®âªàë⮣® ä ©« 
  641.  
  642. align 4
  643. but_open_proj:
  644.         copy_path open_dialog_name,communication_area_default_path,file_name,0
  645.         pushad
  646.         mov [OpenDialog_data.type],0
  647.         stdcall [OpenDialog_Start],OpenDialog_data
  648.         cmp [OpenDialog_data.status],2
  649.         je .open_end
  650.         ;ª®¤ ¯à¨ 㤠筮¬ ®âªàë⨨ ¤¨ «®£ 
  651.  
  652.         mov [run_file_70.Function], 5
  653.         mov [run_file_70.Position], 0
  654.         mov [run_file_70.Flags], 0
  655.         mov dword[run_file_70.Count], 0
  656.         mov dword[run_file_70.Buffer], open_b
  657.         mov byte[run_file_70+20], 0
  658.         mov dword[run_file_70.FileName], openfile_path
  659.         mcall 70,run_file_70
  660.  
  661.         mov ecx,dword[open_b+32] ;+32 qword: à §¬¥à ä ©«  ¢ ¡ ©â å
  662.         mov [open_file_size],ecx
  663.         stdcall mem.ReAlloc,[open_file_data],ecx
  664.         mov [open_file_data],eax
  665.        
  666.         mov [run_file_70.Function], 0
  667.         mov [run_file_70.Position], 0
  668.         mov [run_file_70.Flags], 0
  669.         mov dword[run_file_70.Count], ecx
  670.         m2m dword[run_file_70.Buffer], eax
  671.         mov byte[run_file_70+20], 0
  672.         mov dword[run_file_70.FileName], openfile_path
  673.         mcall 70,run_file_70 ;§ £à㦠¥¬ ä ©«
  674.         cmp ebx,0xffffffff
  675.         mov [err_opn],1
  676.         je .open_end ;if open file
  677.                 mov [err_opn],0
  678.                 stdcall [edit_box_set_text], edit1,openfile_path
  679.  
  680.                 stdcall dword[tl_info_clear], tree2
  681.                 mov eax,[open_file_data] ;¤®¡ ¢«ï¥¬ ®¡ê¥ªâë
  682.                 @@:
  683.                         mov ebx,dword[eax]
  684.                         cmp ebx,0
  685.                         je @f
  686.  
  687.                         call find_obj_in_opt ;edi = pointer to ObjOpt struct
  688.  
  689.                         mov cx,word[edi+obj_opt.img-obj_opt]
  690.                         cmp cx,0
  691.                         jge .zero
  692.                                 xor cx,cx ;çâ®-¡ë ­¥ £«î稫® á ®âà¨æ â¥«ì­ë¬ ¨­¤¥ªá®¬
  693.                         .zero:
  694.                         shl ecx,16 ;¢ ecx ¨­¤¥ªá ¨ª®­ª¨
  695.                         mov cl,byte[eax+u_object.lvl-u_object] ;ã஢¥­ì ®¡ê¥ªâ 
  696.  
  697.                         ;tl_node_close_open - ­¥ ¯®¤å®¤¨â, â.ª. ¤¥©áâ¢ã¥â ­  ã§«ë ¨¬¥î騥 ¤®ç¥à­¨¥
  698.                         mov ch,byte[eax+u_object.clo-u_object] ;§ ªàëâë©/®âªàëâë©
  699.  
  700.                         stdcall dword[tl_node_add], tree2,ecx,eax ;¤®¡ ¢«ï¥¬ ®¡ê¥ªâ
  701.  
  702.                         stdcall dword[tl_cur_next], tree2 ;¯¥à¥­®á¨¬ ªãàá®à ¢­¨§, çâ®-¡ë ­¥ ¯®¬¥­ï«áï ¯®à冷ª
  703.                         add eax,sizeof.object ;¯¥à¥å®¤ ­  á«¥¤ãî騩 ®¡ê¥ªâ
  704.                         jmp @b
  705.                 @@:
  706.                 stdcall dword[tl_cur_beg], tree2 ;¯¥à¥­®á¨¬ ªãàá®à ¢¢¥àå
  707.  
  708.                 mov [foc_obj],0
  709.                 call draw_constructor
  710.                 call code_gen
  711.         .open_end:
  712.         call draw_window ;¯¥à¥à¨á®¢ª  ®ª­  ¨¤¥â ¢ «î¡®¬ á«ãç ¥, ¤ ¦¥ ¥á«¨ ä ©« ­¥ ®âªàë«áï
  713.         popad
  714.         ret
  715.  
  716. ;á®åà ­¥­¨¥ ä ©«  ¯à®íªâ  ­  ¤¨áª
  717. align 4
  718. but_save_proj:
  719.         copy_path open_dialog_name,communication_area_default_path,file_name,0
  720.         pushad
  721.         mov [OpenDialog_data.type],1
  722.         stdcall [OpenDialog_Start],OpenDialog_data
  723.         cmp [OpenDialog_data.status],2
  724.         je .end_save_file
  725.         ;ª®¤ ¯à¨ 㤠筮¬ ®âªàë⨨ ¤¨ «®£ 
  726.  
  727.         ;¡¥à¥¬ à §¬¥à ¯ ¬ïâ¨, ­¥®¡å®¤¨¬®© ¤«ï á®åà ­¥­¨ï ä ©« 
  728.         xor ecx,ecx
  729.         stdcall [tl_node_poi_get_info], tree2,0
  730.         @@:
  731.                 cmp eax,0
  732.                 je @f
  733.                 inc ecx
  734.                 stdcall [tl_node_poi_get_next_info], tree2,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
  735.                 jmp @b
  736.         @@:
  737.         ;movzx eax,word[tree2.info_size]
  738.         imul ecx,sizeof.object ;eax
  739.         add ecx,4 ;¬¥âª  ª®­æ  ä ©« 
  740.         mov [open_file_size],ecx
  741.         stdcall mem.ReAlloc,[open_file_data],ecx
  742.         mov [open_file_data],eax
  743.  
  744.         mov edi,[open_file_data]
  745.         stdcall [tl_node_poi_get_info], tree2,0
  746.         mov edx,eax
  747.         @@:
  748.                 cmp edx,0
  749.                 je @f
  750.                 stdcall [tl_node_poi_get_data], tree2,edx
  751.                 mov esi,eax ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
  752.  
  753.                 mov bl,byte[edx+2] ;bl - ã஢¥­ì ®¡ê¥ªâ 
  754.                 mov byte[esi+u_object.lvl-u_object],bl
  755.                 mov bl,byte[edx+3] ;bl - ®âªàë⨥/§ ªàë⨥ ®¡ê¥ªâ 
  756.                 mov byte[esi+u_object.clo-u_object],bl
  757.  
  758.                 ;¢ëç¨á«ï¥¬ ­®¢ë© ¨­¤¥ªá ¤«ï ⨯  ®¡ê¥ªâ 
  759.                 mov ebx,[esi+u_object.typid-u_object] ;ebx - ⨯ ®¡ê¥ªâ 
  760.                 ;á®å࠭塞 ⨯ ®¡ê¥ªâ 
  761.                 push ebx
  762.                         imul ebx,sizeof.TreeList
  763.                         add ebx,[tree2.data_nodes] ;ebx - 㪠§ â¥«ì ®¡ê¥ªâ 㪠§ë¢ î騩 ⨯
  764.                         stdcall get_obj_npp,ebx
  765.                         mov [esi+u_object.typid-u_object],eax
  766.                         mov eax,esi
  767.                         ;ª®¯¨à㥬 ®¡ê¥ªâ ¢ ¯ ¬ïâì ¤«ï á®åà ­¥­¨ï
  768.                         movzx ecx,word[tree2.info_size]
  769.                         cld
  770.                         rep movsb
  771.                 ;¢®ááâ ­ ¢«¨¢ ¥¬ ⨯ ®¡ê¥ªâ 
  772.                 pop dword[eax+u_object.typid-u_object]
  773.  
  774.                 stdcall [tl_node_poi_get_next_info], tree2,edx
  775.                 mov edx,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
  776.                 jmp @b
  777.         @@:
  778.         mov dword[edi],0 ;¬¥âª  ª®­æ  ä ©« 
  779.         add edi,4
  780.  
  781.         stdcall [edit_box_set_text], edit1,openfile_path
  782.         mov ecx,[open_file_size] ;ecx - à §¬¥à á®å࠭塞®£® ä ©«       
  783.         mov [run_file_70.Function], 2
  784.         mov [run_file_70.Position], 0
  785.         mov [run_file_70.Flags], 0
  786.         mov [run_file_70.Count], ecx
  787.         m2m [run_file_70.Buffer], [open_file_data]
  788.         mov [run_file_70.rezerv], 0
  789.         mov dword[run_file_70.FileName], openfile_path
  790.         mcall 70,run_file_70
  791.  
  792.         .end_save_file:
  793.         popad
  794.         ret
  795.  
  796. ;¡¥à¥â ­®¬¥à ¯® ¯®à浪㠯® 㪠§ â¥«î ­  áâàãªâãàã ®¡ê¥ªâ 
  797. ;output:
  798. ; eax - ­®¬¥à ®¡ê¥ªâ 
  799. align 4
  800. proc get_obj_npp uses ebx ecx, p_obj_str:dword
  801.         mov ecx,2
  802.         mov ebx,[p_obj_str]
  803.  
  804.         stdcall [tl_node_poi_get_info], tree2,0
  805.         @@:
  806.                 cmp eax,0
  807.                 je .no_exist
  808.                 cmp eax,ebx
  809.                 je @f
  810.  
  811.                 inc ecx
  812.                 stdcall [tl_node_poi_get_next_info], tree2,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
  813.                 jmp @b
  814.         .no_exist: ;ª®£¤  ¨¤¥â áá뫪  ­  ­¥ áãé¥áâ¢ãî騩 ®¡ê¥ªâ
  815.                 xor ecx,ecx ;®¡­ã«ï¥¬ 㪠§ â¥«ì, çâ®-¡ë ­¥ á®åà ­ïâì ¢ ä ©« ¬ãá®à
  816.         @@:
  817.         mov eax,ecx
  818.         ret
  819. endp
  820.  
  821. ;äã­ªæ¨ï ¤«ï á®åà ­¥­¨ï ᮧ¤ ­­®£® asm ä ©« 
  822. align 4
  823. but_save_asm:
  824.         push edi
  825.         mov edi, tedit0
  826.  
  827.         stdcall [ted_save_file],edi,run_file_70,[edit_sav.text]
  828.         cmp ted_err_save,0
  829.         jne @f
  830.                 stdcall [mb_create],msgbox_1,thread ;message: ” ©« ¡ë« á®åà ­¥­
  831.         @@:
  832.         pop edi
  833.         ret
  834.  
  835. ;äã­ªæ¨ï ¤«ï ¯®ª § /áªàëâ¨ï ­¥¢¨¤¨¬ëå ᨬ¢®«®¢
  836. align 4
  837. but_show_invis:
  838.         push edi
  839.         mov edi,tedit0
  840.  
  841.         xor ted_mode_invis,1
  842.         cmp byte[show_mode],1 ;ãá«®¢¨¥ ¢¨¤¨¬®á⨠⥪á⮢®£® ®ª­ 
  843.         jne @f
  844.                 stdcall [ted_draw],edi
  845.         @@:
  846.         pop edi
  847.         ret
  848.  
  849. ;
  850. align 4
  851. but_show_syntax:
  852.         push edi
  853.         mov edi,tedit0
  854.  
  855.         xor ted_mode_color,1
  856.         cmp byte[show_mode],1 ;ãá«®¢¨¥ ¢¨¤¨¬®á⨠⥪á⮢®£® ®ª­ 
  857.         jne @f
  858.                 stdcall [ted_draw],edi
  859.         @@:
  860.         pop edi
  861.         ret
  862.  
  863. align 4
  864. ted_save_err_msg:
  865.         mov byte[msgbox_0.err],al
  866.         stdcall [mb_create],msgbox_0,thread ;message: Can-t save text file!
  867.         ret
  868.  
  869. ;äã­ªæ¨ï ¢ë§ë¢ ¥¬ ï ¯à¨ ­ ¦ â¨¨ Enter ¢ ®ª­¥ tree2
  870. ;®¡­®¢«ï¥â ⥪áâ®¢ë¥ ¯®«ï §­ ç¥­¨ï¬¨ ¯ à ¬¥â஢ ¢§ïâëå ¨§ ®¡ê¥ªâ®¢
  871. ;äã­ªæ¨ï ®¡à â­ ï ª ¤ ­­®© but_element_change
  872. align 4
  873. on_file_object_select:
  874.         cmp byte[prop_wnd_run],0
  875.         jne @f
  876.                 mov byte[prop_wnd_run],1
  877.                 stdcall [tl_node_get_data], tree2
  878.                 mov dword[foc_obj],eax
  879.                 cmp eax,0
  880.                 je @f
  881.                         pushad
  882.                         ;¢á¥ ¤¥©áâ¢¨ï ¯® ­ áâனª¥ í«¥¬¥­â®¢ ã¯à ¢«¥­¨ï ¢ë¯®«­ïîâáï ¢ ®ª­¥ ᮠ᢮©á⢠¬¨
  883.                         mcall 51,1,prop_start,prop_thread
  884.                         popad
  885.         @@:
  886.         ;call draw_window
  887.         ret
  888.  
  889. ;äã­ªæ¨ï ¢ë§ë¢ ¥¬ ï ¯à¨ ­ ¦ â¨¨ Enter ¢ ®ª­¥ tree1
  890. ;¤®¡ ¢«ï¥â ­®¢ë© ®¡ê¥ªâ ¢ ®ª­® tree2
  891. align 4
  892. on_add_object:
  893. push eax ebx ecx
  894.         stdcall [tl_node_get_data], tree1
  895.         cmp eax,0
  896.         je @f
  897.                 xor ecx,ecx
  898.                 mov cx,word[eax+obj_opt.img-obj_opt] ;cx - ¨­¤¥ªá £« ¢­®© ¨ª®­ª¨ ¤®¡ ¢«ï¥¬®£® ®¡ê¥ªâ 
  899.  
  900.                 cmp ecx,count_main_icons ;¢ áâ àè¨å ¡¨â å ecx ¡ã¤ãâ 0, ¯®â®¬ã ®âà¨æ â¥«ì­ë¥ ç¨á«  ⮦¥ ¯à®¢¥àïîâáï
  901.                 jl .end_0
  902.                         ;¥á«¨ ¨ª®­ª¨ ­¥â, ¯® 㬮«ç ­¨î ¡¥à¥¬ 0-î
  903.                         xor cx,cx
  904.                 .end_0:
  905.  
  906.                 shl ecx,16
  907.                 stdcall mem_clear, u_object,sizeof.object
  908.                 mov ebx,dword[eax]
  909.                 mov dword[u_object.id],ebx
  910.                 stdcall dword[tl_node_add], tree2,ecx,u_object ;¤®¡ ¢«ï¥¬ ®¡ê¥ªâ
  911.         @@:
  912. pop ecx ebx eax
  913.         call draw_window
  914.         ret
  915.  
  916. align 4
  917. but_ctrl_o:
  918.         ret
  919. align 4
  920. but_ctrl_n:
  921.         ret
  922. align 4
  923. but_ctrl_s:
  924.         ret
  925.  
  926. ;®âªàë⨥ ¨ à á¯ ª®¢ª  ä ©«  ¯®¤á¢¥âª¨ ᨭ⠪á¨á 
  927. ;input:
  928. ; ted_syntax_file - ¡ãä¥à ¤«ï ®âªà뢠¥¬®£® ä ©«  ᨭ⠪á¨á 
  929. ; ted_syntax_file_size - à §¬¥à ®âªà뢠¥¬®£® ä ©«  ᨭ⠪á¨á 
  930. ;output:
  931. ; ebx - ç¨á«® ¯à®ç¨â ­­ëå ¡ ©â ¨§ ä ©« 
  932. align 4
  933. open_unpac_synt_file:
  934. push eax edi esi
  935.         mov edi, tedit0
  936.         mov [run_file_70.Function], 0
  937.         mov [run_file_70.Position], 0
  938.         mov [run_file_70.Flags], 0
  939.         mov ecx, ted_syntax_file_size
  940.         mov dword[run_file_70.Count], ecx
  941.         m2m dword[run_file_70.Buffer], ted_syntax_file
  942.         mov byte[run_file_70+20], 0
  943.         mov [run_file_70.FileName], file_name
  944.         mcall 70, run_file_70
  945.         cmp ebx,-1
  946.         jne .end_0
  947.                 ;¥á«¨ ¢®§­¨ª«¨ ®è¨¡ª¨ ¯à¨ ®âªàë⨨ ä ©«  ᨭ⠪á¨á 
  948.                 mov byte[txt_not_syntax_file.err],'0'
  949.                 add byte[txt_not_syntax_file.err],al
  950.                 notify_window_run txt_not_syntax_file ;Can-t open color options file!
  951.                 jmp @f
  952.         .end_0:
  953.  
  954.                 mov eax,ted_syntax_file
  955.                 cmp dword[eax],'KPCK'
  956.                 jne .end_unpack
  957.  
  958.                 mov ecx,dword[eax+4] ;ecx - à §¬¥à ä ©«  ᨭ⠪á¨á  ¯®á«¥ à á¯ ª®¢ª¨
  959.                 cmp dword[unpac_mem],0
  960.                 jne .end_1
  961.                         ;¯¥à¢®­ ç «ì­®¥ ¢ë¤¥«¥­¨¥ ¢à¥¬¥­­®© ¯ ¬ï⨠¤«ï à á¯ ª®¢ª¨ ä ©« 
  962.                         stdcall mem.Alloc,ecx
  963.                         mov [unpac_mem],eax
  964.                         mov [unpac_mem_size],ecx
  965.                 .end_1:
  966.                 cmp dword[unpac_mem_size],ecx
  967.                 jge .end_2
  968.                         ;¥á«¨ ¤«ï à á¯ ª®¢ ­®£® ä ©«  ­¥ 墠⠥⠢६¥­­®© ¯ ¬ïâ¨
  969.                         stdcall mem.ReAlloc,[unpac_mem],ecx ;§ ­®¢® ¢ë¤¥«ï¥¬ ¢à¥¬¥­­ãî ¯ ¬ïâì
  970.                         mov [unpac_mem],eax
  971.                         mov [unpac_mem_size],ecx
  972.                 .end_2:
  973.  
  974.                 ;à á¯ ª®¢ª  ä ©«  ¢® ¢à¥¬¥­­ãî ¯ ¬ïâì
  975.                 stdcall unpack,ted_syntax_file,[unpac_mem]
  976.  
  977.                 cmp ted_syntax_file_size,ecx
  978.                 jge .end_3
  979.                         ;¥á«¨ ¤«ï à á¯ ª®¢ ­®£® ä ©«  ­¥ 墠⠥⠯ ¬ïâ¨
  980.                         stdcall mem.ReAlloc,ted_syntax_file,ecx ;§ ­®¢® ¢ë¤¥«ï¥¬ ¯ ¬ïâì
  981.                         mov ted_syntax_file,eax
  982.                         mov ted_syntax_file_size,ecx
  983.                 .end_3:
  984.  
  985.                 ;ª®¯¨à®¢ ­¨¥ à á¯ ª®¢ ­­®£® ä ©«  ¨§ ¢à¥¬¥­­®© ¯ ¬ï⨠¢ ¯ ¬ïâì í«¥¬¥­â 
  986.                 mov edi,ted_syntax_file
  987.                 mov esi,[unpac_mem]
  988.                 cld
  989.                 rep movsb
  990.  
  991.                 .end_unpack:
  992.                 ;¯à¨¬¥­¥­¨¥ ä ©«  ¯®¤á¢¥âª¨
  993.                 stdcall [ted_init_syntax_file], tedit0
  994.         @@:
  995. pop esi edi eax
  996.         ret
  997.  
  998. align 4
  999. txt_not_syntax_file:
  1000.         db 'Žè¨¡ª  ¯à¨ ®âªàë⨨ ä ©«  á 梥⮢묨 ­ áâனª ¬¨! (Š®¤ ®è¨¡ª¨ ='
  1001.         .err: db '?'
  1002.         db ')',0
  1003.  
  1004. align 4
  1005. buf_fon: ;ä®­®¢ë© ¡ãä¥à
  1006.         dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
  1007.         dw 310 ;+4 left
  1008.         dw 50 ;+6 top
  1009.         dd 340 ;+8 w
  1010.         dd 280 ;+12 h
  1011.         dd 0xffffff ;+16 color
  1012.         db 24 ;+20 bit in pixel
  1013.  
  1014. align 4
  1015. buf_font: ;¡ãä¥à ¬ âà¨æë á® èà¨ä⮬
  1016.         dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
  1017.         dw 25 ;+4 left
  1018.         dw 25 ;+6 top
  1019.         dd 96 ;+8 w
  1020.         dd 144 ;+12 h
  1021.         dd 0 ;+16 color
  1022.         db 24 ;+20 bit in pixel
  1023.  
  1024. align 4
  1025. buf_skin1:
  1026.         dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
  1027.         dw 0 ;+4 left
  1028.         dw 0 ;+6 top
  1029.         dd SKIN_W1 ;+8 w
  1030.         dd SKIN_H ;+12 h
  1031.         dd 0 ;+16 color
  1032.         db 24 ;+20 bit in pixel
  1033. align 4
  1034. buf_skin2:
  1035.         dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
  1036.         dw 0 ;+4 left
  1037.         dw 0 ;+6 top
  1038.         dd SKIN_W2 ;+8 w
  1039.         dd SKIN_H ;+12 h
  1040.         dd 0 ;+16 color
  1041.         db 24 ;+20 bit in pixel
  1042. align 4
  1043. buf_skin3:
  1044.         dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
  1045.         dw 0 ;+4 left
  1046.         dw 0 ;+6 top
  1047.         dd SKIN_W3 ;+8 w
  1048.         dd SKIN_H ;+12 h
  1049.         dd 0 ;+16 color
  1050.         db 24 ;+20 bit in pixel
  1051.  
  1052. show_mode db 0 ;०¨¬ ¤«ï ¯®ª §  ®¯à¥¤¥«¥­­®£® ®ª­ 
  1053. txtErrOpen db '¥ ­ ©¤¥­ ä ©«, ¯à®¢¥àì⥠¯à ¢¨«ì­®áâì ¨¬¥­¨',0
  1054. txtErrIni1 db '¥ ®âªàë«áï ä ©« á ®¯æ¨ï¬¨',0
  1055. err_opn db 0 ;१. ®âªàëâ¨ï ä ©«  ¯à®íªâ 
  1056. err_ini0 db 0 ;१. ®âªàëâ¨ï ä ©«  á ¨ª®­ª ¬¨
  1057. err_ini1 db 0 ;१. ®âªàëâ¨ï ä ©«  á ®¯æ¨ï¬¨
  1058. unpac_mem dd 0
  1059. unpac_mem_size dd 0
  1060.  
  1061. edit1 edit_box 210, 10, 5, 0xffffff, 0xff80, 0xff, 0xff0000, 0x4080, 300, ed_text1, mouse_dd, 0, 7, 7
  1062.  
  1063. edit2 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text2, mouse_dd, 0
  1064. edit3 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text3, mouse_dd, 0
  1065. edit4 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text4, mouse_dd, 0
  1066. edit5 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text5, mouse_dd, 0
  1067. edit6 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text6, mouse_dd, 0
  1068. edit7 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text7, mouse_dd, 0
  1069. edit8 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text8, mouse_dd, 0
  1070. edit9 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text9, mouse_dd, 0
  1071. edit10 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text10, mouse_dd, 0
  1072. edit11 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text11, mouse_dd, 0
  1073. edit12 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text12, mouse_dd, 0
  1074. prop_wnd_edits_end: ;ª®­¥æ ⥪á⮢ëå ¯®«¥©, ®â¢¥ç îé¨å §  ᢮©á⢠
  1075.  
  1076. edit_sav edit_box 210, 310, 30, 0xffffff, 0xff80, 0xff, 0xff0000, 0x4080, 300, ed_text_sav, mouse_dd, 0
  1077.  
  1078.  
  1079. ed_text1 db '/hd0/1/',0
  1080.         rb 295
  1081. ed_text2 rb MAX_LEN_OBJ_TXT+2
  1082. ed_text3 rb MAX_LEN_OBJ_TXT+2
  1083. ed_text4 rb MAX_LEN_OBJ_TXT+2
  1084. ed_text5 rb MAX_LEN_OBJ_TXT+2
  1085. ed_text6 rb MAX_LEN_OBJ_TXT+2
  1086. ed_text7 rb MAX_LEN_OBJ_TXT+2
  1087. ed_text8 rb MAX_LEN_OBJ_TXT+2
  1088. ed_text9 rb MAX_LEN_OBJ_TXT+2
  1089. ed_text10 rb MAX_LEN_OBJ_TXT+2
  1090. ed_text11 rb MAX_LEN_OBJ_TXT+2
  1091. ed_text12 rb MAX_LEN_OBJ_TXT+2
  1092. ed_text_sav rb 302
  1093.  
  1094. txt_null db 'null',0
  1095. mouse_dd dd ?
  1096.  
  1097. el_focus dd tree1
  1098. ;¤¥à¥¢® ᮠᯨ᪮¬ ¢®§¬®¦­ëå ⨯®¢ ®¡ê¥ªâ®¢
  1099. tree1 tree_list sizeof.ObjOpt,20+2, tl_key_no_edit+tl_draw_par_line+tl_list_box_mode,\
  1100.         16,16, 0xffffff,0xb0d0ff,0xd000ff, 5,50,125,280, 0,obj_opt.info-obj_opt,0, el_focus,\
  1101.         w_scr_t1,on_add_object
  1102. ;¤¥à¥¢® á ®¡ê¥ªâ ¬¨ ¢ ¯®«ì§®¢ â¥«ì᪮¬ ä ©«¥
  1103. tree2 tree_list sizeof.object,MAX_CED_OBJECTS+2, tl_draw_par_line,\
  1104.         16,16, 0xffffff,0xb0d0ff,0xd000ff, 155,50,130,280, 13,u_object.txt-u_object,MAX_LEN_OBJ_TXT, el_focus,\
  1105.         w_scr_t2,on_file_object_select
  1106.  
  1107. msgbox_0:
  1108.   db 1,0
  1109.   db 'Warning',0
  1110.   db 'Error saving file!',13,\
  1111.      'Maybe the file name is not entered correctly.',13,\
  1112.      '  (error code ='
  1113.   .err: db '?'
  1114.   db ')',0
  1115.   db 'Close',0
  1116.   db 0
  1117.  
  1118. msgbox_1:
  1119.         db 1,0
  1120.         db ':)',0
  1121.         db 'File was saved',0
  1122.         db 'Ok',0
  1123.         db 0
  1124.  
  1125. struct TexSelect
  1126.         x0 dd ?
  1127.         y0 dd ?
  1128.         x1 dd ?
  1129.         y1 dd ?
  1130. ends
  1131. ;------------------------------------------------------------------------------
  1132. align 4
  1133. tedit0: ;áâàãªâãà  â¥ªá⮢®£® । ªâ®à 
  1134.         .wnd BOX 310,50,325,260 ;+ 0
  1135.         .rec BOX 30,13,7,10   ;+16
  1136.         .drag_m db 0 ;+32 ¢ë¤¥«¥­¨¥ ®â ¬ëè¨
  1137.         .drag_k db 0 ;+33 ¢ë¤¥«¥­¨¥ ®â ª« ¢¨ âãàë
  1138.         .sel  TexSelect 0,0,0,0 ;+34 áâàãªâãà  ¢ë¤¥«¥­¨ï
  1139.         .seln TexSelect ;+50 ¤®¯®«­¨â¥«ì­ ï áâàãªâãà  ¢ë¤¥«¥­¨ï
  1140.         .tex      dd 0 ;+66 text memory pointer
  1141.         .tex_1    dd 0 ;+70 text first symbol pointer
  1142.         .tex_end  dd 0 ;+74 text end memory pointer
  1143.         .cur_x    dd 0 ;+78 ª®®à¤¨­ â  x ªãàá®à 
  1144.         .cur_y    dd 0 ;+82 ª®®à¤¨­ â  y ªãàá®à 
  1145.         .max_chars dd 25002 ;+86 ¬ ªá¨¬ «ì­®¥ ç¨á«® ᨬ¢®«®¢ ¢ ®¤­®¬ ¤®ªã¬¥­â¥
  1146.         .count_colors_text dd 1 ;+90 ª®««¨ç¥á⢮ 梥⮢ ⥪áâ 
  1147.         .count_key_words   dd 0 ;+94 ª®««¨ç¥á⢮ ª«î祢ëå á«®¢
  1148.         .color_cursor      dd 0xff0000 ;+98 梥⠪ãàá®à 
  1149.         .color_wnd_capt    dd 0x0080c0 ;+102 梥⠯®«¥© ¢®ªà㣠®ª­ 
  1150.         .color_wnd_work    dd      0x0 ;+106 梥â ä®­  ®ª­ 
  1151.         .color_wnd_bord    dd 0xffffff ;+110 梥â ⥪áâ  ­  ¯®«ïå
  1152.         .color_select      dd 0x0000ff ;+114 梥⠢뤥«¥­¨ï
  1153.         .color_cur_text    dd 0xffff00 ;+118 梥â ᨬ¢®«  ¯®¤ ªãàá®à®¬
  1154.         .color_wnd_text    dd 0x80ffff ;+122 梥â ⥪áâ  ¢ ®ª­¥
  1155.         .syntax_file       dd 0 ;+126 㪠§ â¥«ì ­  ­ ç «® ä ©«  ᨭ⠪á¨á 
  1156.         .syntax_file_size  dd 55*1024 ;+130 ¬ ªá¨¬ «ì­ë© à §¬¥à ä ©«  ᨭ⠪á¨á 
  1157.         .text_colors       dd 0 ;+134 㪠§ â¥«ì ­  ¬ áᨢ 梥⮢ ⥪áâ 
  1158.         .help_text_f1      dd 0 ;+138 㪠§ â¥«ì ­  ⥪áâ á¯à ¢ª¨ (¯® ­ ¦ â¨¨ F1)
  1159.         .help_id           dd -1 ;+142 ¨¤¥­â¨ä¨ª â®à ¤«ï á¯à ¢ª¨
  1160.         .key_words_data    dd 0 ;+146 㪠§ â¥«ì ­  áâàãªâãàë ª«î祢ëå á«®¢ TexColViv
  1161.         .tim_ch      dd ? ;+150 ª®«¨ç¥á⢮ ¨§¬¥­¥­¨© ¢ ä ©«¥
  1162.         .tim_undo    dd ? ;+154 ª®«¨ç¥á⢮ ®â¬¥­¥­­ëå ¤¥©á⢨©
  1163.         .tim_ls      dd ? ;+158 ¢à¥¬ï ¯®á«¥¤­¥£® á®åà ­¥­¨ï
  1164.         .tim_co      dd ? ;+162 ¢à¥¬ï ¯®á«¥¤­¥© 梥⮢®© à §¬¥âª¨
  1165.         .el_focus    dd el_focus ;+166 㪠§ â¥«ì ­  ¯¥à¥¬¥­­ãî í«¥¬¥­â  ¢ 䮪ãá¥
  1166.         .err_save    db 0 ;+170 ®è¨¡ª  á®åà ­¥­¨ï ä ©« 
  1167.         .panel_id    db 0 ;+171 ­®¬¥à ®âªàë⮩ ¯ ­¥«¨
  1168.         .key_new     db 0 ;+172 ᨬ¢®«, ª®â®àë© ¡ã¤¥â ¤®¡ ¢«ïâáï á ª« ¢¨ âãàë
  1169.         .symbol_new_line db 20 ;+173 ᨬ¢®« § ¢¥à襭¨ï áâப¨
  1170.         .scr_w       dd scrol_w1 ;+174 ¢¥à⨪ «ì­ë© áªà®««¨­£
  1171.         .scr_h       dd scrol_h1 ;+178 £®à¨§®­â «ì­ë© áªà®««¨­£
  1172.         .arr_key_pos dd 0 ;+182 㪠§ â¥«ì ­  ¬ áᨢ ¯®§¨æ¨© ª«î祢ëå á«®¢
  1173.         .buffer      dd text_buffer ;+186 㪠§ â¥«ì ­  ¡ãä¥à ª®¯¨à®¢ ­¨ï/¢áâ ¢ª¨
  1174.         .buffer_find dd 0 ;+190 㪠§ â¥«ì ­  ¡ãä¥à ¤«ï ¯®¨áª 
  1175.         .cur_ins     db 1 ;+194 ०¨¬ à ¡®âë ªãàá®à  (®¡ëç­ë© ¨«¨ § ¬¥­ )
  1176.         .mode_color  db 1 ;+195 ०¨¬ ¢ë¤¥«¥­¨ï á«®¢ 梥⮬ (0-¢ëª«. 1-¢ª«.)
  1177.         .mode_invis  db 0 ;+196 ०¨¬ ¯®ª §  ­¥¯¥ç â ¥¬ëå ᨬ¢®«®¢
  1178.         .gp_opt      db 0 ;+197 ®¯æ¨¨ ¢®§¢à é ¥¬ë¥ ä㭪樥© ted_get_pos_by_cursor
  1179.         .fun_on_key_ctrl_o dd but_ctrl_o ;+198 㪠§ â¥«ì ­  äã­ªæ¨î ¢ë§ë¢ ¥¬ãî ¯à¨ ­ ¦ â¨¨ Ctrl+O (®âªàë⨥ ä ©« )
  1180.         .fun_on_key_ctrl_f dd 0 ;+202 ... Ctrl+F (¢ë§®¢ /áªàëâ¨ï ¯ ­¥«¨ ¯®¨áª )
  1181.         .fun_on_key_ctrl_n dd but_ctrl_n ;+206 ... Ctrl+N (ᮧ¤ ­¨¥ ­®¢®£® ¤®ªã¬¥­â )
  1182.         .fun_on_key_ctrl_s dd 0 ;+210 ... Ctrl+S
  1183.         .buffer_size       dd BUF_SIZE ;+214 à §¬¥à ¡ãä¥à  ª®¯¨à®¢ ­¨ï/¢áâ ¢ª¨
  1184.         .fun_find_err      dd 0 ;+218 㪠§ â¥«ì ­  äã­ªæ¨î ¢ë§ë¢ ¥¬ãî ¥á«¨ ¯®¨áª § ª®­ç¨«áï ­¥ã¤ ç­®
  1185.         .fun_init_synt_err dd 0 ;+222 㪠§ â¥«ì ­  äã­ªæ¨î ¢ë§ë¢ ¥¬ãî ¯à¨ ®è¨¡®ç­®¬ ®âªàë⨨ ä ©«  ᨭ⠪á¨á 
  1186.         .fun_draw_panel_buttons dd 0 ;+226 㪠§ â¥«ì ­  äã­ªæ¨î à¨á®¢ ­¨ï ¯ ­¥«¨ á ª­®¯ª ¬¨
  1187.         .fun_draw_panel_find    dd 0 ;+230 㪠§ â¥«ì ­  äã­ªæ¨î à¨á®¢ ­¨ï ¯ ­¥«¨ ¯®¨áª 
  1188.         .fun_draw_panel_syntax  dd 0 ;+234 㪠§ â¥«ì ­  äã­ªæ¨î à¨á®¢ ­¨ï ¯ ­¥«¨ ᨭ⠪á¨á 
  1189.         .fun_save_err           dd ted_save_err_msg ;+238 㪠§ â¥«ì ­  äã­ªæ¨î ¢ë§ë¢ ¥¬ãî ¥á«¨ á®åà ­¥­¨¥ ä ©«  § ª®­ç¨«®áì ­¥ã¤ ç­®
  1190.         .increase_size dd 1000 ;+242 ç¨á«® ᨬ¢®«®¢ ­  ª®â®àë¥ ¡ã¤¥â 㢥稢 âìáï ¯ ¬ïâì ¯à¨ ­¥å¢ âª¥
  1191.         .ptr_free_symb dd ? ;+246 㪠§ â¥«ì ­  ᢮¡®¤­ãî ¯ ¬ïâì, ¢ ª®â®àãî ¬®¦­® ¤®¡ ¢«ïâì ᨬ¢®« (¨á¯®«ì§ã¥âáï ¢­ãâà¨ í«¥¬¥­â  ¤«ï ã᪮७¨ï ¢áâ ¢ª¨ ⥪áâ )
  1192. ;------------------------------------------------------------------------------
  1193. align 4
  1194. scrol_w1:
  1195. .x:
  1196. .size_x   dw 16 ;+0
  1197. .start_x  dw 85 ;+2
  1198. .y:
  1199. .size_y   dw 100 ; +4
  1200. .start_y  dw  15 ; +6
  1201. .btn_high dd  15 ; +8
  1202. .type     dd   1 ;+12
  1203. .max_area dd 100 ;+16
  1204. rb 4+4
  1205. .bckg_col dd 0xeeeeee ;+28
  1206. .frnt_col dd 0xbbddff ;+32
  1207. .line_col dd 0x808080 ;+36
  1208. .redraw   dd   0 ;+40
  1209. .delta    dw   0 ;+44
  1210. .delta2   dw   0 ;+46
  1211. .run_x:
  1212. rb 32
  1213. .all_redraw dd 0 ;+80
  1214. .ar_offset  dd 1 ;+84
  1215. ;---------------------------------------------------------------------
  1216. align 4
  1217. scrol_h1:
  1218. .x:
  1219. .size_x     dw 85 ;+0
  1220. .start_x    dw 30 ;+2
  1221. .y:
  1222. .size_y     dw 16 ;+4
  1223. .start_y    dw 100 ;+6
  1224. .btn_high   dd 15 ;+8
  1225. .type       dd 1  ;+12
  1226. .max_area   dd 100 ;+16
  1227. rb 4+4
  1228. .bckg_col   dd 0xeeeeee ;+28
  1229. .frnt_col   dd 0xbbddff ;+32
  1230. .line_col   dd 0x808080 ;+36
  1231. .redraw     dd 0  ;+40
  1232. .delta      dw 0  ;+44
  1233. .delta2     dw 0  ;+46
  1234. .run_x:
  1235. rb 32
  1236. .all_redraw dd 0 ;+80
  1237. .ar_offset  dd 1 ;+84
  1238.  
  1239.  
  1240.  
  1241. align 4
  1242. w_scr_t1:
  1243. .size_x     dw 16 ;+0
  1244. rb 2+2+2
  1245. .btn_high   dd 15 ;+8
  1246. .type       dd 1  ;+12
  1247. .max_area   dd 100  ;+16
  1248. rb 4+4
  1249. .bckg_col   dd 0xeeeeee ;+28
  1250. .frnt_col   dd 0xbbddff ;+32
  1251. .line_col   dd 0  ;+36
  1252. rb 4+2+2
  1253. .run_x:
  1254. rb 32
  1255. .all_redraw dd 0 ;+80
  1256. .ar_offset  dd 1 ;+84
  1257.  
  1258. align 4
  1259. w_scr_t2:
  1260. .size_x     dw 16 ;+0
  1261. rb 2+2+2
  1262. .btn_high   dd 15 ;+8
  1263. .type       dd 1  ;+12
  1264. .max_area   dd 100  ;+16
  1265. rb 4+4
  1266. .bckg_col   dd 0xeeeeee ;+28
  1267. .frnt_col   dd 0xbbddff ;+32
  1268. .line_col   dd 0  ;+36
  1269. rb 4+2+2
  1270. .run_x:
  1271. rb 32
  1272. .all_redraw dd 0 ;+80
  1273. .ar_offset  dd 1 ;+84
  1274.  
  1275. ;¤ ­­ë¥ ¤«ï ¤¨ «®£  ®âªàëâ¨ï ä ©«®¢
  1276. align 4
  1277. OpenDialog_data:
  1278. .type                   dd 0 ;0 - ®âªàëâì, 1 - á®åà ­¨âì, 2 - ¢ë¡à âì ¤â४â®à¨î
  1279. .procinfo               dd procinfo     ;+4
  1280. .com_area_name          dd communication_area_name      ;+8
  1281. .com_area               dd 0    ;+12
  1282. .opendir_path           dd plugin_path  ;+16
  1283. .dir_default_path       dd default_dir ;+20
  1284. .start_path             dd file_name ;+24 ¯ãâì ª ¤¨ «®£ã ®âªàëâ¨ï ä ©«®¢
  1285. .draw_window            dd draw_window  ;+28
  1286. .status                 dd 0    ;+32
  1287. .openfile_path          dd openfile_path        ;+36 ¯ãâì ª ®âªà뢠¥¬®¬ã ä ©«ã
  1288. .filename_area          dd filename_area        ;+40
  1289. .filter_area            dd Filter
  1290. .x:
  1291. .x_size                 dw 420 ;+48 ; Window X size
  1292. .x_start                dw 10 ;+50 ; Window X position
  1293. .y:
  1294. .y_size                 dw 320 ;+52 ; Window y size
  1295. .y_start                dw 10 ;+54 ; Window Y position
  1296.  
  1297. default_dir db '/rd/1',0
  1298.  
  1299. communication_area_name:
  1300.         db 'FFFFFFFF_open_dialog',0
  1301. open_dialog_name:
  1302.         db 'opendial',0
  1303. communication_area_default_path:
  1304.         db '/rd/1/File managers/',0
  1305.  
  1306. Filter:
  1307. dd Filter.end - Filter ;.1
  1308. .1:
  1309. db 'CED',0
  1310. db 'ASM',0
  1311. .end:
  1312. db 0
  1313.  
  1314.  
  1315. data_of_code dd 0
  1316. sc system_colors
  1317.  
  1318. image_data dd 0 ;¯ ¬ïâì ¤«ï ¯à¥®¡à §®¢ ­¨ï ª à⨭ª¨ äã­ªæ¨ï¬¨ libimg
  1319.  
  1320. text_buffer db BUF_SIZE dup(0)
  1321. fn_obj_opt db 'ob_o.opt',0
  1322. obj_opt ObjOpt
  1323.         rb sizeof.ObjOpt*(MAX_OBJ_TYPES-1)+MAX_OBJ_CAPTIONS
  1324.         db 0 ;eof options
  1325.  
  1326. cur_x dd 0
  1327. cur_y dd 0
  1328. foc_obj dd 0 ;®¡ê¥ªâ ¢ 䮪ãá¥
  1329. obj_count_txt_props dd 0 ;ª®«¨ç¥á⢮ ¨á¯®«ì§ã¥¬ëå ⥪á⮢ëå ᢮©áâ¢
  1330. obj_m_win dd 0 ;áâàãªâãà  £« ¢­®£® ®ª­ 
  1331.  
  1332.         system_dir0 db '/sys/lib/'
  1333.         lib0_name db 'box_lib.obj',0
  1334.  
  1335.         system_dir1 db '/sys/lib/'
  1336.         lib1_name db 'proc_lib.obj',0
  1337.  
  1338.         system_dir2 db '/sys/lib/'
  1339.         lib2_name db 'buf2d.obj',0
  1340.  
  1341.         system_dir3 db '/sys/lib/'
  1342.         lib3_name db 'libimg.obj',0
  1343.  
  1344.         system_dir4 db '/sys/lib/'
  1345.         lib4_name db 'msgbox.obj',0
  1346.  
  1347. align 4
  1348. import_buf2d_lib:
  1349.         dd sz_lib_init
  1350.         buf2d_create dd sz_buf2d_create
  1351.         buf2d_create_f_img dd sz_buf2d_create_f_img
  1352.         buf2d_clear dd sz_buf2d_clear
  1353.         buf2d_draw dd sz_buf2d_draw
  1354.         buf2d_delete dd sz_buf2d_delete
  1355.         buf2d_line dd sz_buf2d_line
  1356.         buf2d_rect_by_size dd sz_buf2d_rect_by_size
  1357.         buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size
  1358.         ;buf2d_circle dd sz_buf2d_circle
  1359.         buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
  1360.         buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
  1361.         buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
  1362.         buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
  1363.         buf2d_bit_blt dd sz_buf2d_bit_blt
  1364.         buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
  1365.         buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
  1366.         ;buf2d_curve_bezier dd sz_buf2d_curve_bezier
  1367.         buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
  1368.         buf2d_draw_text dd sz_buf2d_draw_text
  1369.         ;buf2d_crop_color dd sz_buf2d_crop_color
  1370.         buf2d_offset_h dd sz_buf2d_offset_h    
  1371. dd 0,0
  1372.         sz_lib_init db 'lib_init',0
  1373.         sz_buf2d_create db 'buf2d_create',0
  1374.         sz_buf2d_create_f_img db 'buf2d_create_f_img',0
  1375.         sz_buf2d_clear db 'buf2d_clear',0
  1376.         sz_buf2d_draw db 'buf2d_draw',0
  1377.         sz_buf2d_delete db 'buf2d_delete',0
  1378.         sz_buf2d_line db 'buf2d_line',0
  1379.         sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0 ;à¨á®¢ ­¨¥ ¯àאַ㣮«ì­¨ª , 2-ï ª®®à¤¨­ â  § ¤ ­  ¯® à §¬¥àã
  1380.         sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0
  1381.         ;sz_buf2d_circle db 'buf2d_circle',0 ;à¨á®¢ ­¨¥ ®ªà㦭®áâ¨
  1382.         sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
  1383.         sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
  1384.         sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
  1385.         sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
  1386.         sz_buf2d_bit_blt db 'buf2d_bit_blt',0
  1387.         sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
  1388.         sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
  1389.         ;sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
  1390.         sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
  1391.         sz_buf2d_draw_text db 'buf2d_draw_text',0
  1392.         ;sz_buf2d_crop_color db 'buf2d_crop_color',0
  1393.         sz_buf2d_offset_h db 'buf2d_offset_h',0
  1394.  
  1395. align 4
  1396. import_box_lib:
  1397.         dd alib_init2
  1398.  
  1399.         edit_box_draw dd aEdit_box_draw
  1400.         edit_box_key dd aEdit_box_key
  1401.         edit_box_mouse dd aEdit_box_mouse
  1402.         edit_box_set_text dd aEdit_box_set_text
  1403.  
  1404.         init_checkbox dd aInit_checkbox
  1405.         check_box_draw dd aCheck_box_draw
  1406.         check_box_mouse dd aCheck_box_mouse
  1407.  
  1408.         scrollbar_ver_draw dd aScrollbar_ver_draw
  1409.         scrollbar_hor_draw dd aScrollbar_hor_draw
  1410.  
  1411.         tl_data_init dd sz_tl_data_init
  1412.         tl_data_clear dd sz_tl_data_clear
  1413.         tl_info_clear dd sz_tl_info_clear
  1414.         tl_key dd sz_tl_key
  1415.         tl_mouse dd sz_tl_mouse
  1416.         tl_draw dd sz_tl_draw
  1417.         tl_info_undo dd sz_tl_info_undo
  1418.         tl_info_redo dd sz_tl_info_redo
  1419.         tl_node_add dd sz_tl_node_add
  1420.         tl_node_set_data dd sz_tl_node_set_data
  1421.         tl_node_get_data dd sz_tl_node_get_data
  1422.         tl_node_delete dd sz_tl_node_delete
  1423.         tl_node_move_up dd sz_tl_node_move_up
  1424.         tl_node_move_down dd sz_tl_node_move_down
  1425.         tl_cur_beg dd sz_tl_cur_beg
  1426.         tl_cur_next dd sz_tl_cur_next
  1427.         tl_cur_perv dd sz_tl_cur_perv
  1428.         tl_node_close_open dd sz_tl_node_close_open
  1429.         tl_node_lev_inc dd sz_tl_node_lev_inc
  1430.         tl_node_lev_dec dd sz_tl_node_lev_dec
  1431.         tl_node_poi_get_info dd sz_tl_node_poi_get_info
  1432.         tl_node_poi_get_next_info dd sz_tl_node_poi_get_next_info
  1433.         tl_node_poi_get_data dd sz_tl_node_poi_get_data
  1434.  
  1435.         ted_but_sumb_upper dd sz_ted_but_sumb_upper
  1436.         ted_but_sumb_lover dd sz_ted_but_sumb_lover
  1437.         ted_can_save dd sz_ted_can_save
  1438.         ted_clear dd sz_ted_clear
  1439.         ted_delete dd sz_ted_delete
  1440.         ted_draw dd sz_ted_draw
  1441.         ted_init dd sz_ted_init
  1442.         ted_init_scroll_bars dd sz_ted_init_scroll_bars
  1443.         ted_init_syntax_file dd sz_ted_init_syntax_file
  1444.         ted_is_select dd sz_ted_is_select
  1445.         ted_key dd sz_ted_key
  1446.         ted_mouse dd sz_ted_mouse
  1447.         ted_open_file dd sz_ted_open_file
  1448.         ted_save_file dd sz_ted_save_file
  1449.         ted_text_add dd sz_ted_text_add
  1450.         ted_but_select_word dd sz_ted_but_select_word
  1451.         ted_but_cut dd sz_ted_but_cut
  1452.         ted_but_copy dd sz_ted_but_copy
  1453.         ted_but_paste dd sz_ted_but_paste
  1454.         ted_but_undo dd sz_ted_but_undo
  1455.         ted_but_redo dd sz_ted_but_redo
  1456.         ted_but_reverse dd sz_ted_but_reverse
  1457.         ted_but_find dd sz_ted_but_find
  1458.         ted_text_colored dd sz_ted_text_colored
  1459.         ;version_text_edit dd sz_ted_version
  1460.  
  1461. dd 0,0
  1462.  
  1463.         alib_init2 db 'lib_init',0
  1464.  
  1465.         aEdit_box_draw  db 'edit_box',0
  1466.         aEdit_box_key   db 'edit_box_key',0
  1467.         aEdit_box_mouse db 'edit_box_mouse',0
  1468.         aEdit_box_set_text db 'edit_box_set_text',0
  1469.  
  1470.         aInit_checkbox db 'init_checkbox2',0
  1471.         aCheck_box_draw db 'check_box_draw2',0
  1472.         aCheck_box_mouse db 'check_box_mouse2',0
  1473.  
  1474.         aScrollbar_ver_draw  db 'scrollbar_v_draw',0
  1475.         aScrollbar_hor_draw  db 'scrollbar_h_draw',0
  1476.  
  1477.         sz_tl_data_init db 'tl_data_init',0
  1478.         sz_tl_data_clear db 'tl_data_clear',0
  1479.         sz_tl_info_clear db 'tl_info_clear',0
  1480.         sz_tl_key db 'tl_key',0
  1481.         sz_tl_mouse db 'tl_mouse',0
  1482.         sz_tl_draw db 'tl_draw',0
  1483.         sz_tl_info_undo db 'tl_info_undo',0
  1484.         sz_tl_info_redo db 'tl_info_redo',0
  1485.         sz_tl_node_add db 'tl_node_add',0
  1486.         sz_tl_node_set_data db 'tl_node_set_data',0
  1487.         sz_tl_node_get_data db 'tl_node_get_data',0
  1488.         sz_tl_node_delete db 'tl_node_delete',0
  1489.         sz_tl_node_move_up db 'tl_node_move_up',0
  1490.         sz_tl_node_move_down db 'tl_node_move_down',0
  1491.         sz_tl_cur_beg db 'tl_cur_beg',0
  1492.         sz_tl_cur_next db 'tl_cur_next',0
  1493.         sz_tl_cur_perv db 'tl_cur_perv',0
  1494.         sz_tl_node_close_open db 'tl_node_close_open',0
  1495.         sz_tl_node_lev_inc db 'tl_node_lev_inc',0
  1496.         sz_tl_node_lev_dec db 'tl_node_lev_dec',0
  1497.         sz_tl_node_poi_get_info db 'tl_node_poi_get_info',0
  1498.         sz_tl_node_poi_get_next_info db 'tl_node_poi_get_next_info',0
  1499.         sz_tl_node_poi_get_data db 'tl_node_poi_get_data',0
  1500.  
  1501.         sz_ted_but_sumb_upper   db 'ted_but_sumb_upper',0
  1502.         sz_ted_but_sumb_lover   db 'ted_but_sumb_lover',0
  1503.         sz_ted_can_save                 db 'ted_can_save',0
  1504.         sz_ted_clear                    db 'ted_clear',0
  1505.         sz_ted_delete                   db 'ted_delete',0
  1506.         sz_ted_draw                             db 'ted_draw',0
  1507.         sz_ted_init                             db 'ted_init',0
  1508.         sz_ted_init_scroll_bars db 'ted_init_scroll_bars',0
  1509.         sz_ted_init_syntax_file db 'ted_init_syntax_file',0
  1510.         sz_ted_is_select                db 'ted_is_select',0
  1511.         sz_ted_key                              db 'ted_key',0
  1512.         sz_ted_mouse                    db 'ted_mouse',0
  1513.         sz_ted_open_file                db 'ted_open_file',0
  1514.         sz_ted_save_file                db 'ted_save_file',0
  1515.         sz_ted_text_add                 db 'ted_text_add',0
  1516.         sz_ted_but_select_word  db 'ted_but_select_word',0
  1517.         sz_ted_but_cut                  db 'ted_but_cut',0
  1518.         sz_ted_but_copy                 db 'ted_but_copy',0
  1519.         sz_ted_but_paste                db 'ted_but_paste',0
  1520.         sz_ted_but_undo                 db 'ted_but_undo',0
  1521.         sz_ted_but_redo                 db 'ted_but_redo',0
  1522.         sz_ted_but_reverse              db 'ted_but_reverse',0
  1523.         sz_ted_but_find                 db 'ted_but_find',0
  1524.         sz_ted_text_colored             db 'ted_text_colored',0
  1525.         ;sz_ted_version db 'version_text_edit',0
  1526.  
  1527. align 4
  1528. import_proc_lib:
  1529.         OpenDialog_Init dd aOpenDialog_Init
  1530.         OpenDialog_Start dd aOpenDialog_Start
  1531. dd 0,0
  1532.         aOpenDialog_Init db 'OpenDialog_init',0
  1533.         aOpenDialog_Start db 'OpenDialog_start',0
  1534.  
  1535. align 4
  1536. import_libimg:
  1537.         dd alib_init1
  1538.         img_is_img  dd aimg_is_img
  1539.         img_info    dd aimg_info
  1540.         img_from_file dd aimg_from_file
  1541.         img_to_file dd aimg_to_file
  1542.         img_from_rgb dd aimg_from_rgb
  1543.         img_to_rgb  dd aimg_to_rgb
  1544.         img_to_rgb2 dd aimg_to_rgb2
  1545.         img_decode  dd aimg_decode
  1546.         img_encode  dd aimg_encode
  1547.         img_create  dd aimg_create
  1548.         img_destroy dd aimg_destroy
  1549.         img_destroy_layer dd aimg_destroy_layer
  1550.         img_count   dd aimg_count
  1551.         img_lock_bits dd aimg_lock_bits
  1552.         img_unlock_bits dd aimg_unlock_bits
  1553.         img_flip    dd aimg_flip
  1554.         img_flip_layer dd aimg_flip_layer
  1555.         img_rotate  dd aimg_rotate
  1556.         img_rotate_layer dd aimg_rotate_layer
  1557.         img_draw    dd aimg_draw
  1558.  
  1559. dd 0,0
  1560.  
  1561.         alib_init1   db 'lib_init',0
  1562.         aimg_is_img  db 'img_is_img',0 ;®¯à¥¤¥«ï¥â ¯® ¤ ­­ë¬, ¬®¦¥â «¨ ¡¨¡«¨®â¥ª  ᤥ« âì ¨§ ­¨å ¨§®¡à ¦¥­¨¥
  1563.         aimg_info    db 'img_info',0
  1564.         aimg_from_file db 'img_from_file',0
  1565.         aimg_to_file db 'img_to_file',0
  1566.         aimg_from_rgb db 'img_from_rgb',0
  1567.         aimg_to_rgb  db 'img_to_rgb',0 ;¯à¥®¡à §®¢ ­¨¥ ¨§®¡à ¦¥­¨ï ¢ ¤ ­­ë¥ RGB
  1568.         aimg_to_rgb2 db 'img_to_rgb2',0
  1569.         aimg_decode  db 'img_decode',0 ; ¢â®¬ â¨ç¥áª¨ ®¯à¥¤¥«ï¥â ä®à¬ â £à ä¨ç¥áª¨å ¤ ­­ëå
  1570.         aimg_encode  db 'img_encode',0
  1571.         aimg_create  db 'img_create',0
  1572.         aimg_destroy db 'img_destroy',0
  1573.         aimg_destroy_layer db 'img_destroy_layer',0
  1574.         aimg_count   db 'img_count',0
  1575.         aimg_lock_bits db 'img_lock_bits',0
  1576.         aimg_unlock_bits db 'img_unlock_bits',0
  1577.         aimg_flip    db 'img_flip',0
  1578.         aimg_flip_layer db 'img_flip_layer',0
  1579.         aimg_rotate  db 'img_rotate',0
  1580.         aimg_rotate_layer db 'img_rotate_layer',0
  1581.         aimg_draw    db 'img_draw',0
  1582.  
  1583. align 4
  1584. import_msgbox_lib:
  1585.         mb_create dd amb_create
  1586.         mb_reinit dd amb_reinit
  1587.         mb_setfunctions dd amb_setfunctions
  1588. dd 0,0
  1589.         amb_create db 'mb_create',0
  1590.         amb_reinit db 'mb_reinit',0
  1591.         amb_setfunctions db 'mb_setfunctions',0
  1592.  
  1593. ;library structures
  1594. l_libs_start:
  1595.         lib0 l_libs lib0_name, library_path, system_dir0, import_box_lib
  1596.         lib1 l_libs lib1_name, library_path, system_dir1, import_proc_lib
  1597.         lib2 l_libs lib2_name, library_path, system_dir2, import_buf2d_lib
  1598.         lib3 l_libs lib3_name, library_path, system_dir3, import_libimg
  1599.         lib4 l_libs lib4_name, library_path, system_dir4, import_msgbox_lib
  1600. load_lib_end:
  1601.  
  1602.  
  1603. align 16
  1604. run_file_70 FileInfoBlock
  1605. open_b rb 560
  1606.  
  1607. IncludeIGlobals
  1608. i_end:
  1609. IncludeUGlobals
  1610.         procinfo process_information
  1611.         buf_cmd_lin rb 1024
  1612.         file_name rb 1024 ;icon file path
  1613.         fp_obj_opt rb 1024 ;obj options file patch
  1614.         rb 1024
  1615.         prop_thread:
  1616.         rb 1024
  1617.         thread: ;¢¢¥àåã ¤®ç¥à­¨© á⥪ ¤«ï ®ª­  á®®¡é¥­¨ï
  1618.         rb 1024
  1619. stacktop: ;¢¢¥àåã á⥪ ®á­®¢­®© ¯à®£à ¬¬ë
  1620.         sys_path rb 1024
  1621.         library_path rb 1024
  1622.         plugin_path rb 4096
  1623.         openfile_path rb 4096
  1624.         filename_area rb 256
  1625. mem:
  1626.