Subversion Repositories Kolibri OS

Rev

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

  1. ;Ž£à®¬­ ï ¡« £®¤ à­®áâì Maxxxx32, Diamond, Heavyiron
  2. ;¨ ¤à㣨¬ ¯à®£à ¬¬¨áâ ¬,   â ª¦¥
  3. ;’¥¯«®¢ã €«¥ªá¥î (<Lrz> www.lrz.land.ru)
  4.  
  5.  
  6. use32
  7.   org 0x0
  8.   db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
  9.   dd 0x01
  10.   dd start
  11.   dd i_end ; à §¬¥à ¯à¨«®¦¥­¨ï
  12.   dd mem
  13.   dd stacktop
  14.   dd file_name ; command line
  15.   dd sys_path
  16.  
  17. MAX_COLOR_WORD_LEN equ 40
  18. maxChars equ 100002 ;(...+2)
  19. BUF_SIZE equ 4096 ;buffer for copy|paste
  20. maxSyntaxFileSize equ 410000
  21. TOOLBAR_ICONS_SIZE equ 1200*18
  22.  
  23. include '../../proc32.inc'
  24. ;include '../../config.inc'
  25. include '../../macros.inc'
  26. include '../../dll.inc'
  27. include '../../develop/libraries/box_lib/load_lib.mac'
  28. include '../../develop/libraries/box_lib/trunk/box_lib.mac'
  29. include '../../system/desktop/trunk/kglobals.inc'
  30. include '../../system/desktop/trunk/unpacker.inc'
  31. include 'lang.inc'
  32.  
  33. include 't_data.inc'
  34. include 'strlen.inc'
  35. include 't_draw.inc' ;draw main window functions
  36. include 't_button.inc' ;text work functions
  37. include 'wnd_k_words.inc'
  38.  
  39. @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
  40.  
  41.  
  42. ;Œ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥­¨© á ¨á¯®«ì§®¢ ­¨¥¬ ¡¨¡«¨®â¥ª¨ libimg.obj
  43. ;¤«ï ¨á¯®«ì§®¢ ­¨ï ¬ ªà®á  ­ã¦­ë ¯¥à¥¬¥­­ë¥:
  44. ; - run_file_70 FileInfoBlock
  45. ; - image_data dd 0
  46. macro load_image_file path,buf,size
  47. {
  48.         ;path - ¬®¦¥â ¡ëâì ¯¥à¥¬¥­­®© ¨«¨ áâப®¢ë¬ ¯ à ¬¥â஬
  49.         if path eqtype '' ;¯à®¢¥à塞 § ¤ ­ «¨ áâப®© ¯ à ¬¥âà path
  50.                 jmp @f
  51.                         local .path_str
  52.                         .path_str db path ;ä®à¬¨à㥬 «®ª «ì­ãî ¯¥à¥¬¥­­ãî
  53.                         db 0
  54.                 @@:
  55.                 ;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬
  56.                 copy_path .path_str,[32],file_name,0x0
  57.         else
  58.                 copy_path path,[32],file_name,0x0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
  59.         end if
  60.  
  61.         stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
  62.         mov [buf],eax
  63.  
  64.         mov eax,70 ;70-ï äã­ªæ¨ï à ¡®â  á ä ©« ¬¨
  65.         mov [run_file_70.Function], 0
  66.         mov [run_file_70.Position], 0
  67.         mov [run_file_70.Flags], 0
  68.         mov [run_file_70.Count], dword size
  69.         m2m [run_file_70.Buffer], [buf]
  70.         mov byte[run_file_70+20], 0
  71.         mov [run_file_70.FileName], file_name
  72.         mov ebx,run_file_70
  73.         int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
  74.         cmp ebx,0xffffffff
  75.         je @f
  76.                 ;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
  77.                 stdcall dword[img_decode], dword[buf],ebx,0
  78.                 mov dword[image_data],eax
  79.                 ;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥­¨¥ ª ä®à¬ âã rgb
  80.                 stdcall dword[img_to_rgb2], dword[image_data],dword[buf]
  81.                 ;㤠«ï¥¬ ¢à¥¬¥­­ë© ¡ãä¥à image_data
  82.                 stdcall dword[img_destroy], dword[image_data]
  83.         @@:
  84. }
  85.  
  86. image_data dd 0 ;㪠§ â¥«ì ­  ¢à¥¬¥­­ãî ¯ ¬ïâì. ¤«ï ­ã¦¥­ ¯à¥®¡à §®¢ ­¨ï ¨§®¡à ¦¥­¨ï
  87. icon_tl_sys dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï á¨á⥬­ëå ¨ª®­®ª
  88.  
  89. align 4
  90. start:
  91.   mcall 48,3,sc,sizeof.system_colors
  92.  
  93.   mcall 68,11
  94.   or eax,eax
  95.   jz button.exit
  96.  
  97.   mcall 66,1,1 ;scan code
  98.   mcall 40,0xC0000027
  99.  
  100.   mov esi,file_name
  101.   call strlen
  102.   mov ecx,eax
  103.   mov edi,openfile_path
  104.   cld
  105.   rep movsb ;ª®¯¨à㥬 ¨¬ï ä ©«  ¢ ¡ãä¥à edit1
  106.  
  107. load_libraries l_libs_start,load_lib_end
  108.  
  109. ;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨«¨áì ¡¨¡«¨®â¥ª¨
  110.         mov     ebp,lib0
  111.         cmp     dword [ebp+ll_struc_size-4],0
  112.         jz      @f
  113.         mcall -1 ;exit not correct
  114. @@:
  115.         mov     ebp,lib1 ;
  116.         cmp     dword [ebp+ll_struc_size-4],0
  117.         jz      @f
  118.         mcall -1 ;exit not correct
  119. @@:
  120.  
  121.         cmp dword[version_text_edit],3
  122.         jge @f
  123.                 stdcall [mb_create],msgbox_10,thread
  124.                 mcall -1
  125.         @@:
  126.  
  127. ;---------------------------------------------------------------------
  128.         stdcall [ted_init], tedit0
  129.         stdcall dword[tl_data_init], tree1
  130.  
  131. ; OpenDialog initialisation
  132.         stdcall [OpenDialog_Init],OpenDialog_data
  133.  
  134. ; init toolbar file
  135.         load_image_file 'te_icon.png', bmp_icon,TOOLBAR_ICONS_SIZE*2 ;㬭®¦¥­¨¥ ­  2 ¤«ï á¥àëå ª­®¯®ª
  136.         mov eax,[bmp_icon]
  137.         add eax,TOOLBAR_ICONS_SIZE
  138.         stdcall img_to_gray, [bmp_icon],eax,(TOOLBAR_ICONS_SIZE)/3
  139. ;---------------------------------------------------------------------
  140. ; ç¨â ¥¬ ä ©« á ªãàá®à ¬¨ ¨ «¨­¨ï¬¨
  141.         load_image_file 'tl_sys_16.png', icon_tl_sys,54+3*256*13
  142.         mov eax,dword[icon_tl_sys]
  143.         mov dword[tree1.data_img_sys],eax
  144. ;---------------------------------------------------------------------
  145. ; ç¨â ¥¬ ä ©« á ¨ª®­ª ¬¨ 㧫®¢
  146.         load_image_file 'tl_nod_16.png', icon_tl_sys,54+3*256*2
  147.         mov eax,dword[icon_tl_sys]
  148.         mov dword[tree1.data_img],eax
  149. ;------------------------------------------------------------------------------
  150.   copy_path fn_syntax_dir,sys_path,file_name,0x0 ;¡¥à¥¬ ¯ãâì ª ¯ ¯ª¥ á ä ©« ¬¨ ᨭ⠪á¨á 
  151.   mov eax,70
  152.   mov ebx,tree_file_struct
  153.   int 0x40
  154.  
  155. cmp ebx,-1
  156. je .end_dir_init
  157.  
  158.   mov eax,dir_mem
  159.   add eax,32+4+1+3+4*6+8
  160. mov ecx,ebx
  161. @@:
  162.   cmp byte[eax],'.' ;䨫ìâà㥬 ä ©«ë á ¨¬¥­ ¬¨ '.' ¨ '..'
  163.   je .filter
  164.     ;0x10000 ;1*2^16 - £¤¥ 1 ­®¬¥à ¨ª®­ª¨ á ª­¨£®©
  165.     stdcall dword[tl_node_add], eax,0x10000, tree1
  166.  
  167.     stdcall dword[tl_cur_next], tree1
  168.   .filter:
  169.   add eax,304
  170.   loop @b
  171.   stdcall dword[tl_cur_beg],tree1 ;áâ ¢¨¬ ªãàá®à ­  ­ ç «® ᯨ᪠
  172. .end_dir_init:
  173.  
  174. ;--- load ini file ---
  175.         copy_path ini_name,sys_path,file_name,0
  176.         ;window startup pozition
  177.         stdcall dword[ini_get_int],file_name,ini_sec_window,key_window_l,ini_def_window_l
  178.         mov word[wnd_s_pos+2],ax
  179.         stdcall dword[ini_get_int],file_name,ini_sec_window,key_window_w,ini_def_window_w
  180.         mov word[wnd_s_pos],ax
  181.         stdcall dword[ini_get_int],file_name,ini_sec_window,key_window_t,ini_def_window_t
  182.         mov word[wnd_s_pos+6],ax
  183.         stdcall dword[ini_get_int],file_name,ini_sec_window,key_window_h,ini_def_window_h
  184.         mov word[wnd_s_pos+4],ax
  185.         ;scrool type
  186.         stdcall dword[ini_get_int],file_name,ini_sec_window,key_scroll_type,ini_def_scroll_type
  187.         mov [wScr.type],eax
  188.         mov [hScr.type],eax
  189.         mov [ws_dir_lbox.type],eax
  190.     mov [w_scr_t3.type],eax
  191.         ;symbol size
  192.         stdcall dword[ini_get_int],file_name,ini_sec_window,key_symbol_w,ini_def_symbol_w
  193.         mov dword[tedit0.rec.width],eax
  194.         stdcall dword[ini_get_int],file_name,ini_sec_window,key_symbol_h,ini_def_symbol_h
  195.         mov dword[tedit0.rec.height],eax
  196.         lea eax,[eax+eax*2]
  197.         mov dword[tedit0.rec.top],eax
  198.         ;ä ©«®¢ë¥ à áè¨à¥­¨ï
  199.         xor edx,edx
  200.         mov ebx,synt_auto_open
  201.         @@:
  202.                 ;¡¥à¥¬ ¨¬ï ä ©« 
  203.                 stdcall dword[ini_get_str],file_name,ini_sec_options,key_synt_file,ebx,32,ini_def_synt_f
  204.                 cmp byte[ebx],0
  205.                 je @f
  206.                 inc byte[key_synt_file.numb]
  207.                 add ebx,32
  208.                 ;¡¥à¥¬ à áè¨à¥­¨ï
  209.                 stdcall dword[ini_get_str],file_name,ini_sec_options,key_synt_ext,ebx,32,ini_def_synt_f
  210.                 inc byte[key_synt_ext.numb]
  211.                 add ebx,32
  212.                 inc edx
  213.                 cmp edx,max_synt_auto_open
  214.                 jl @b
  215.         @@:
  216.  
  217. ;--- load color option file ---
  218.         mov ebx,dword[fn_col_option]
  219.         call open_unpac_synt_file
  220.  
  221. ;--- get cmd line ---
  222.         cmp byte[openfile_path+3],0 ;openfile_path
  223.         je @f ;if file names exist
  224.                 mov esi,openfile_path
  225.                 call strlen ;eax=strlen
  226.                 mov [edit1.size],eax
  227.                 call but_no_msg_OpenFile
  228.         @@:
  229.  
  230.  
  231.  
  232. align 4
  233. red_win:
  234.   call draw_window
  235.  
  236. align 4
  237. still:
  238.         mcall 10
  239.  
  240.         cmp al,1 ;¨§¬¥­¨«®áì ¯®«®¦¥­¨¥ ®ª­ 
  241.         jz red_win
  242.         cmp al,2
  243.         jz key
  244.         cmp al,3
  245.         jz button
  246.         cmp al,6 ;¬ëèì
  247.         jne @f
  248.                 jmp mouse
  249.         @@:
  250.         jmp still
  251.  
  252. align 4
  253. draw_window:
  254.         mcall 12,1
  255.  
  256.         mov edx,[sc.work]
  257.         or  edx,0x73000000
  258.         mov edi,hed
  259.         mcall 0,dword[wnd_s_pos],dword[wnd_s_pos+4]
  260.  
  261.         mcall 9,procinfo,-1
  262.         mov edi,tedit0 ;§­ ç¥­¨¥ edi ­ã¦­® ¤«ï EvSize ¨ ted_wnd_t
  263.         call EvSize
  264.  
  265.         mov eax,13 ;¢¥àå­¨© ¯àאַ㣮«ì­¨ª, ¤«ï ®ç¨á⪨ ¢¥àå­¥© ¯ ­¥«¨
  266.         xor ebx,ebx
  267.         mov ecx,ted_wnd_t
  268.         mov bx,word[procinfo.client_box.width]
  269.         inc bx
  270.         int 0x40
  271.  
  272.         mov eax,4
  273.         mov ebx,185*65536+9
  274.         mov ecx,[sc.work_text]
  275.         or  ecx,0x80000000
  276.         mov edx,txtFile
  277.         int 0x40
  278.  
  279.   stdcall [edit_box_draw], dword edit1
  280.   stdcall [menu_bar_draw], dword menu_data_1
  281.  
  282.   call draw_but_toolbar
  283.  
  284.   stdcall [ted_draw], tedit0
  285.  
  286.   mcall 12,2
  287.   ret
  288.  
  289. align 4
  290. mouse:
  291.         stdcall [edit_box_mouse], dword edit1
  292.  
  293.         test word [edit1.flags],10b ;ed_focus ;¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
  294.         jne still
  295.  
  296.         stdcall [ted_mouse], tedit0
  297.  
  298.         cmp byte[tedit0.panel_id],TED_PANEL_FIND ;if not panel
  299.         jne @f
  300.                 stdcall [edit_box_mouse], dword edit2
  301.         @@:
  302.         cmp byte[tedit0.panel_id],TED_PANEL_SYNTAX ;if not panel
  303.         jne .menu_bar_1 ;@f
  304.         stdcall [tl_mouse], tree1
  305. ;-----------------------------------------------
  306. .menu_bar_1:
  307.         mov [menu_data_1.get_mouse_flag],1
  308. ; mouse event for Menu 1
  309.         stdcall [menu_bar_mouse],dword menu_data_1
  310.         cmp dword[menu_data_1.click],1
  311.         jne .mnu_1
  312.         cmp dword[menu_data_1.cursor_out],4
  313.         je button.exit 
  314.         cmp dword[menu_data_1.cursor_out],3
  315.         jne @f
  316.                 stdcall [ted_but_save_file], tedit0,run_file_70,[edit1.text]
  317.         @@:
  318.         cmp dword[menu_data_1.cursor_out],2
  319.         jne @f
  320.                 call ted_but_open_file
  321.         @@:
  322.         cmp dword[menu_data_1.cursor_out],1
  323.         jne @f
  324.                 call ted_but_new_file
  325.         @@:
  326. .mnu_1:
  327.         jmp still
  328. ;---------------------------------------------------------------------
  329.  
  330. ;output:
  331. ; ah = symbol
  332. align 4
  333. proc KeyConvertToASCII, table:dword
  334.   push ebx
  335.   mov ebx,dword[table] ;convert scan to ascii
  336.   ror ax,8
  337.   xor ah,ah
  338.   add bx,ax
  339.   mov ah,byte[ebx]
  340.   pop ebx
  341.   ret
  342. endp
  343.  
  344. align 4
  345. key:
  346.   mcall 66,3 ;66.3 ¯®«ãç¨âì á®áâ®ï­¨¥ ã¯à ¢«ïîé¨å ª« ¢¨è
  347.   xor esi,esi
  348.   mov ecx,1
  349.   test al,0x03 ;[Shift]
  350.   jz @f
  351.     mov cl,2
  352.     or esi,KM_SHIFT
  353.   @@:
  354.   test al,0x0c ;[Ctrl]
  355.   jz @f
  356.     or esi,KM_CTRL
  357.   @@:
  358.   test al,0x30 ;[Alt]
  359.   jz @f
  360.     mov cl,3
  361.     or esi,KM_ALT
  362.   @@:
  363.   test al,0x80 ;[NumLock]
  364.   jz @f
  365.     or esi,KM_NUMLOCK
  366.   @@:
  367.  
  368.   mcall 26,2,,conv_tabl ;26.2 ¯®«ãç¨âì à áª« ¤ªã ª« ¢¨ âãàë
  369.   mcall 2 ;¯®«ãç ¥¬ ª®¤ ­ ¦ â®© ª« ¢¨è¨
  370.   stdcall [tl_key], tree1
  371.  
  372.   test word [edit1.flags],10b;ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
  373.   je @f
  374.     cmp ah,0x80 ;if key up
  375.     ja still
  376.     cmp ah,42 ;[Shift] (left)
  377.     je still
  378.     cmp ah,54 ;[Shift] (right)
  379.     je still
  380.     cmp ah,56 ;[Alt]
  381.     je still
  382.     cmp ah,29 ;[Ctrl]
  383.     je still
  384.     cmp ah,69 ;[Pause Break]
  385.     je still
  386.  
  387.     stdcall KeyConvertToASCII, dword conv_tabl
  388.     stdcall [edit_box_key], dword edit1
  389.     jmp still
  390.   @@:
  391.  
  392.   test word [edit2.flags],10b;ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
  393.   je @f
  394.     cmp ah,0x80 ;if key up
  395.     ja still
  396.     cmp ah,42 ;[Shift] (left)
  397.     je still
  398.     cmp ah,54 ;[Shift] (right)
  399.     je still
  400.     cmp ah,56 ;[Alt]
  401.     je still
  402.     cmp ah,29 ;[Ctrl]
  403.     je still
  404.     cmp ah,69 ;[Pause Break]
  405.     je still
  406.  
  407.     stdcall KeyConvertToASCII, dword conv_tabl
  408.     stdcall [edit_box_key], dword edit2
  409.     jmp still
  410.   @@:
  411.  
  412.   stdcall [ted_key], tedit0, conv_tabl,esi
  413.   jmp still
  414.  
  415. align 4
  416. button:
  417. ;  cmp [menu_active],1 ;¥á«¨ ­ ¦ «¨ ¬¥­î, â® á­ ç «  ॠªæ¨ï ­  ¬¥­î
  418. ;  jne @f ;mouse.menu_bar_1
  419. ;    mov [menu_active],0
  420. ;    jmp still
  421. ;  @@:
  422.  
  423.   mcall 17 ;¯®«ãç¨âì ª®¤ ­ ¦ â®© ª­®¯ª¨
  424.   cmp ah,3
  425.   jne @f
  426.     call ted_but_new_file
  427.   @@:
  428.   cmp ah,4
  429.   jne @f
  430.     call ted_but_open_file
  431.   @@:
  432.   cmp ah,5
  433.   jne @f
  434.     stdcall [ted_but_save_file], tedit0,run_file_70,[edit1.text]
  435.   @@:
  436.   cmp ah,6
  437.   jne @f
  438.     stdcall [ted_but_select_word], tedit0
  439.   @@:
  440.   cmp ah,7
  441.   jne @f
  442.     stdcall [ted_but_cut], tedit0
  443.   @@:
  444.   cmp ah,8
  445.   jne @f
  446.     stdcall [ted_but_copy], tedit0
  447.   @@:
  448.   cmp ah,9
  449.   jne @f
  450.     stdcall [ted_but_paste], tedit0
  451.   @@:
  452.   cmp ah,10
  453.   jne @f
  454.     call ted_but_find
  455.   @@:
  456.   cmp ah,11
  457.   jne @f
  458.     call but_replace
  459.   @@:
  460.   cmp ah,12
  461.   jne @f
  462.     call but_find_key_w
  463.   @@:
  464.   cmp ah,13
  465.   jne @f
  466.     stdcall [ted_but_sumb_upper], tedit0
  467.   @@:
  468.   cmp ah,14
  469.   jne @f
  470.     stdcall [ted_but_sumb_lover], tedit0
  471.   @@:
  472.   cmp ah,15
  473.   jne @f
  474.     stdcall [ted_but_reverse], tedit0
  475.   @@:
  476.   cmp ah,16
  477.   jne @f
  478.     stdcall [ted_but_undo], tedit0
  479.   @@:
  480.   cmp ah,17
  481.   jne @f
  482.     stdcall [ted_but_redo], tedit0
  483.   @@:
  484.   cmp ah,18
  485.   jne @f
  486.     stdcall but_sumb_invis, tedit0
  487.   @@:
  488.   cmp ah,19
  489.   jne @f
  490.     stdcall but_k_words_show, tedit0
  491.   @@:
  492.   cmp ah,20
  493.   jne @f
  494.     stdcall but_synt_show, tedit0
  495.   @@:
  496.  
  497.   cmp ah,200
  498.   jne @f
  499.     stdcall ted_but_open_syntax, tedit0
  500.   @@:
  501.   cmp ah,201
  502.   jne @f
  503.     stdcall [ted_but_find_next], tedit0
  504.   @@:
  505.  
  506.   cmp ah,1
  507.   jne still
  508. .exit:
  509.         stdcall [ted_can_save], tedit0
  510.         cmp al,1
  511.         jne @f
  512.                 stdcall [mb_create],msgbox_8,thread ;message: save changes in file?
  513.                 jmp still
  514.         @@:
  515.         stdcall mem.Free,[bmp_icon]
  516.         cmp dword[unpac_mem],0
  517.         je @f
  518.                 stdcall mem.Free,[unpac_mem]
  519.         @@:
  520.  
  521.         stdcall [ted_delete], tedit0
  522.         stdcall dword[tl_data_clear], tree1
  523.         mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë
  524.  
  525.  
  526. edit1 edit_box 250, 220, 5, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 4090, openfile_path, mouse_dd, 0
  527. edit2 edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_find, mouse_dd, 0
  528.  
  529. unpac_mem dd 0
  530.  
  531. if lang eq ru
  532.   head_f_i:
  533.   head_f_l db '‘¨á⥬­ ï ®è¨¡ª ',0
  534.   err_message_found_lib0 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'box_lib.obj',39,0
  535.   err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib.obj',39,0
  536.   err_message_found_lib1 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'msgbox.obj',39,0
  537.   err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'msgbox.obj',39,0
  538.   err_message_found_lib2 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'proc_lib.obj',39,0
  539.   err_message_import2 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0
  540.   err_message_found_lib_3 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libimg.obj',39,0
  541.   err_message_import_3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,0
  542.   err_message_found_lib_4 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libini.obj',39,0
  543.   err_message_import_4 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini.obj',39,0
  544. else
  545.   head_f_i:
  546.   head_f_l db 'System error',0
  547.   err_message_found_lib0 db 'Sorry I cannot found library ',39,'box_lib.obj',39,0
  548.   err_message_import0 db 'Error on load import library ',39,'box_lib.obj',39,0
  549.   err_message_found_lib1 db 'Sorry I cannot found library ',39,'msgbox.obj',39,0
  550.   err_message_import1 db 'Error on load import library ',39,'msgbox.obj',39,0
  551.   err_message_found_lib2 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,0
  552.   err_message_import2 db 'Error on load import library ',39,'proc_lib.obj',39,0
  553.   err_message_found_lib_3 db 'Sorry I cannot found library ',39,'libimg.obj',39,0
  554.   err_message_import_3 db 'Error on load import library ',39,'libimg.obj',39,0
  555.   err_message_found_lib_4 db 'Sorry I cannot found library ',39,'libini.obj',39,0
  556.   err_message_import_4 db 'Error on load import library ',39,'libini.obj',39,0
  557. end if
  558.  
  559. ;library structures
  560. l_libs_start:
  561.         lib0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\
  562.                 err_message_found_lib0, head_f_l, import_box_lib,err_message_import0, head_f_i
  563.         lib1 l_libs lib_name_1, sys_path, file_name, system_dir_1,\
  564.                 err_message_found_lib1, head_f_l, import_msgbox_lib, err_message_import1, head_f_i
  565.         lib2 l_libs lib_name_2, sys_path, file_name, system_dir_2,\
  566.                 err_message_found_lib2, head_f_l, import_proclib, err_message_import2, head_f_i
  567.         lib3 l_libs lib_name_3, sys_path, file_name, system_dir_3,\
  568.                 err_message_found_lib_3, head_f_l, import_libimg, err_message_import_3, head_f_i
  569.         lib4 l_libs lib_name_4, sys_path, file_name, system_dir_4,\
  570.                 err_message_found_lib_4, head_f_l, import_libini, err_message_import_4, head_f_i
  571. load_lib_end:
  572.  
  573. IncludeIGlobals
  574. i_end:
  575.         dir_mem rb 32+304*count_of_dir_list_files
  576.         wnd_s_pos: ;¬¥áâ® ¤«ï ­ áâ஥ª áâ à⮢®© ¯®§¨æ¨¨ ®ª­ 
  577.                 rq 1
  578.         last_open_synt_file rb 32 ;¨¬ï ¯®á«¥¤­¥£® ¯®¤ª«î祭­®£® ä ©«  ᨭ⠪á¨á 
  579.         buf rb BUF_SIZE ;¡ãä¥à ¤«ï ª®¯¨à®¢ ­¨ï ¨ ¢áâ ¢ª¨
  580.         buf_find rb 302 ;¡ãä¥à ¤«ï ¯®¨áª  ⥪áâ 
  581. IncludeUGlobals
  582.         align 16
  583.         procinfo process_information
  584.                 rb 1024
  585.         thread:
  586.         rb 1024
  587.     thread_coords:
  588.         rb 1024
  589. stacktop:
  590.         sys_path:
  591.                 rb 4096
  592.         file_name:
  593.                 rb 4096
  594.         file_name_rez:
  595.                 rb 4096
  596.         plugin_path:
  597.                 rb 4096
  598.         openfile_path:
  599.                 rb 4096
  600.         filename_area:
  601.                 rb 256
  602.         file_info:
  603.                 rb 40
  604. mem:
  605.