Subversion Repositories Kolibri OS

Rev

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