Subversion Repositories Kolibri OS

Rev

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