Subversion Repositories Kolibri OS

Rev

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

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