Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
1449 IgorA 1
;Огромная благодарность Maxxxx32, Diamond, Heavyiron
2
;и другим программистам, а также
3
;Теплову Алексею ( www.lrz.land.ru)
1338 IgorA 4
 
5
 
6
use32
7
  org 0x0
1449 IgorA 8
  db 'MENUET01' ;идентиф. исполняемого файла всегда 8 байт
1338 IgorA 9
  dd 0x01
10
  dd start
1449 IgorA 11
  dd i_end ; размер приложения
1338 IgorA 12
  dd mem
13
  dd stacktop
1449 IgorA 14
  dd file_name ; command line
1338 IgorA 15
  dd sys_path
16
 
17
MAX_COLOR_WORD_LEN equ 40
18
maxChars equ 100002 ;(...+2)
2817 IgorA 19
BUF_SIZE equ 4096 ;buffer for copy|paste
1457 IgorA 20
maxSyntaxFileSize equ 410000
4128 IgorA 21
TOOLBAR_ICONS_SIZE equ 1200*18
1338 IgorA 22
 
1449 IgorA 23
include '../../proc32.inc'
2708 IgorA 24
;include '../../config.inc'
1338 IgorA 25
include '../../macros.inc'
3014 dunkaist 26
include '../../dll.inc'
1390 IgorA 27
include '../../develop/libraries/box_lib/load_lib.mac'
1449 IgorA 28
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
2708 IgorA 29
include '../../system/desktop/trunk/kglobals.inc'
30
include '../../system/desktop/trunk/unpacker.inc'
1343 IgorA 31
include 'lang.inc'
1467 IgorA 32
 
1338 IgorA 33
include 't_data.inc'
34
include 'strlen.inc'
35
include 't_draw.inc' ;draw main window functions
1457 IgorA 36
include 't_button.inc' ;text work functions
3244 IgorA 37
include 'wnd_k_words.inc'
1338 IgorA 38
 
2632 IgorA 39
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
1338 IgorA 40
 
2632 IgorA 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
 
1456 IgorA 89
align 4
1338 IgorA 90
start:
1456 IgorA 91
  mcall 48,3,sc,sizeof.system_colors
1338 IgorA 92
 
93
  mcall 68,11
94
  or eax,eax
95
  jz button.exit
96
 
97
  mcall 66,1,1 ;scan code
3244 IgorA 98
  mcall 40,0xC0000027
1338 IgorA 99
 
1456 IgorA 100
  mov esi,file_name
101
  call strlen
102
  mov ecx,eax
1467 IgorA 103
  mov edi,openfile_path
2632 IgorA 104
  cld
1456 IgorA 105
  rep movsb ;копируем имя файла в буфер edit1
1338 IgorA 106
 
1456 IgorA 107
load_libraries l_libs_start,load_lib_end
1338 IgorA 108
 
2102 IgorA 109
;проверка на сколько удачно загузились библиотеки
1456 IgorA 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
@@:
1338 IgorA 120
 
2102 IgorA 121
	cmp dword[version_text_edit],3
122
	jge @f
123
		stdcall [mb_create],msgbox_10,thread
124
		mcall -1
125
	@@:
126
 
1456 IgorA 127
;---------------------------------------------------------------------
1592 IgorA 128
	stdcall [ted_init], tedit0
129
	stdcall dword[tl_data_init], tree1
1338 IgorA 130
 
1467 IgorA 131
; OpenDialog initialisation
1592 IgorA 132
	stdcall [OpenDialog_Init],OpenDialog_data
1467 IgorA 133
 
2632 IgorA 134
; init toolbar file
4128 IgorA 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
1338 IgorA 139
;---------------------------------------------------------------------
2632 IgorA 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
1338 IgorA 144
;---------------------------------------------------------------------
2632 IgorA 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
1338 IgorA 149
;------------------------------------------------------------------------------
1449 IgorA 150
  copy_path fn_syntax_dir,sys_path,file_name,0x0 ;берем путь к папке с файлами синтаксиса
1338 IgorA 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
@@:
1449 IgorA 162
  cmp byte[eax],'.' ;фильтруем файлы с именами '.' и '..'
1338 IgorA 163
  je .filter
1456 IgorA 164
    ;0x10000 ;1*2^16 - где 1 номер иконки с книгой
165
    stdcall dword[tl_node_add], eax,0x10000, tree1
1338 IgorA 166
 
1456 IgorA 167
    stdcall dword[tl_cur_next], tree1
1338 IgorA 168
  .filter:
169
  add eax,304
170
  loop @b
2102 IgorA 171
  stdcall dword[tl_cur_beg],tree1 ;ставим курсор на начало списка
1338 IgorA 172
.end_dir_init:
173
 
2817 IgorA 174
;--- load ini file ---
2855 IgorA 175
	copy_path ini_name,sys_path,file_name,0
2817 IgorA 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
3244 IgorA 190
    mov [w_scr_t3.type],eax
2817 IgorA 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
2855 IgorA 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
	@@:
2817 IgorA 216
 
1338 IgorA 217
;--- load color option file ---
1457 IgorA 218
	mov ebx,dword[fn_col_option]
2708 IgorA 219
	call open_unpac_synt_file
1338 IgorA 220
 
221
;--- get cmd line ---
2708 IgorA 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
	@@:
1338 IgorA 229
 
2817 IgorA 230
 
231
 
1456 IgorA 232
align 4
1338 IgorA 233
red_win:
1467 IgorA 234
  call draw_window
235
 
236
align 4
237
still:
2125 IgorA 238
	mcall 10
1467 IgorA 239
 
2125 IgorA 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
1467 IgorA 251
 
252
align 4
253
draw_window:
2125 IgorA 254
	mcall 12,1
1338 IgorA 255
 
2125 IgorA 256
	mov edx,[sc.work]
257
	or  edx,0x73000000
258
	mov edi,hed
2817 IgorA 259
	mcall 0,dword[wnd_s_pos],dword[wnd_s_pos+4]
1338 IgorA 260
 
2125 IgorA 261
	mcall 9,procinfo,-1
262
	mov edi,tedit0 ;значение edi нужно для EvSize и ted_wnd_t
263
	call EvSize
1449 IgorA 264
 
2125 IgorA 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
1338 IgorA 271
 
1467 IgorA 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
 
1449 IgorA 279
  stdcall [edit_box_draw], dword edit1
280
  stdcall [menu_bar_draw], dword menu_data_1
1338 IgorA 281
 
282
  call draw_but_toolbar
283
 
2632 IgorA 284
  stdcall [ted_draw], tedit0
1338 IgorA 285
 
1343 IgorA 286
  mcall 12,2
1467 IgorA 287
  ret
1338 IgorA 288
 
1456 IgorA 289
align 4
1338 IgorA 290
mouse:
2125 IgorA 291
	stdcall [edit_box_mouse], dword edit1
1338 IgorA 292
 
2125 IgorA 293
	test word [edit1.flags],10b ;ed_focus ;если не в фокусе, выходим
294
	jne still
1338 IgorA 295
 
2125 IgorA 296
	stdcall [ted_mouse], tedit0
1338 IgorA 297
 
2125 IgorA 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
1338 IgorA 305
;-----------------------------------------------
306
.menu_bar_1:
2125 IgorA 307
	mov [menu_data_1.get_mouse_flag],1
1338 IgorA 308
; mouse event for Menu 1
2125 IgorA 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
	@@:
1338 IgorA 326
.mnu_1:
2125 IgorA 327
	jmp still
1338 IgorA 328
;---------------------------------------------------------------------
329
 
1456 IgorA 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
1338 IgorA 336
  ror ax,8
337
  xor ah,ah
338
  add bx,ax
339
  mov ah,byte[ebx]
1456 IgorA 340
  pop ebx
1338 IgorA 341
  ret
1456 IgorA 342
endp
1338 IgorA 343
 
1456 IgorA 344
align 4
1338 IgorA 345
key:
1456 IgorA 346
  mcall 66,3 ;66.3 получить состояние управляющих клавиш
1457 IgorA 347
  xor esi,esi
1338 IgorA 348
  mov ecx,1
349
  test al,0x03 ;[Shift]
350
  jz @f
1456 IgorA 351
    mov cl,2
1457 IgorA 352
    or esi,KM_SHIFT
1338 IgorA 353
  @@:
354
  test al,0x0c ;[Ctrl]
355
  jz @f
1457 IgorA 356
    or esi,KM_CTRL
1338 IgorA 357
  @@:
358
  test al,0x30 ;[Alt]
359
  jz @f
1456 IgorA 360
    mov cl,3
1457 IgorA 361
    or esi,KM_ALT
1338 IgorA 362
  @@:
363
  test al,0x80 ;[NumLock]
364
  jz @f
1457 IgorA 365
    or esi,KM_NUMLOCK
1338 IgorA 366
  @@:
1457 IgorA 367
 
1456 IgorA 368
  mcall 26,2,,conv_tabl ;26.2 получить раскладку клавиатуры
369
  mcall 2 ;получаем код нажатой клавиши
1458 IgorA 370
  stdcall [tl_key], tree1
1338 IgorA 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
 
1456 IgorA 387
    stdcall KeyConvertToASCII, dword conv_tabl
388
    stdcall [edit_box_key], dword edit1
1338 IgorA 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
 
1456 IgorA 407
    stdcall KeyConvertToASCII, dword conv_tabl
1449 IgorA 408
    stdcall [edit_box_key], dword edit2
1338 IgorA 409
    jmp still
410
  @@:
411
 
1457 IgorA 412
  stdcall [ted_key], tedit0, conv_tabl,esi
1338 IgorA 413
  jmp still
414
 
1457 IgorA 415
align 4
1338 IgorA 416
button:
1449 IgorA 417
;  cmp [menu_active],1 ;если нажали меню, то сначала реакция на меню
1338 IgorA 418
;  jne @f ;mouse.menu_bar_1
419
;    mov [menu_active],0
420
;    jmp still
421
;  @@:
422
 
1449 IgorA 423
  mcall 17 ;получить код нажатой кнопки
1338 IgorA 424
  cmp ah,3
425
  jne @f
1457 IgorA 426
    call ted_but_new_file
1338 IgorA 427
  @@:
428
  cmp ah,4
429
  jne @f
1457 IgorA 430
    call ted_but_open_file
1338 IgorA 431
  @@:
432
  cmp ah,5
433
  jne @f
1457 IgorA 434
    stdcall [ted_but_save_file], tedit0,run_file_70,[edit1.text]
1338 IgorA 435
  @@:
436
  cmp ah,6
1456 IgorA 437
  jne @f
1457 IgorA 438
    stdcall [ted_but_select_word], tedit0
1456 IgorA 439
  @@:
1338 IgorA 440
  cmp ah,7
1456 IgorA 441
  jne @f
1457 IgorA 442
    stdcall [ted_but_cut], tedit0
1456 IgorA 443
  @@:
1338 IgorA 444
  cmp ah,8
445
  jne @f
1457 IgorA 446
    stdcall [ted_but_copy], tedit0
1338 IgorA 447
  @@:
448
  cmp ah,9
1456 IgorA 449
  jne @f
1457 IgorA 450
    stdcall [ted_but_paste], tedit0
1456 IgorA 451
  @@:
1338 IgorA 452
  cmp ah,10
1449 IgorA 453
  jne @f
1457 IgorA 454
    call ted_but_find
1449 IgorA 455
  @@:
1338 IgorA 456
  cmp ah,11
1456 IgorA 457
  jne @f
458
    call but_replace
459
  @@:
1338 IgorA 460
  cmp ah,12
1456 IgorA 461
  jne @f
462
    call but_find_key_w
463
  @@:
1338 IgorA 464
  cmp ah,13
1456 IgorA 465
  jne @f
1457 IgorA 466
    stdcall [ted_but_sumb_upper], tedit0
1456 IgorA 467
  @@:
1338 IgorA 468
  cmp ah,14
1456 IgorA 469
  jne @f
1457 IgorA 470
    stdcall [ted_but_sumb_lover], tedit0
1456 IgorA 471
  @@:
1338 IgorA 472
  cmp ah,15
1456 IgorA 473
  jne @f
1457 IgorA 474
    stdcall [ted_but_reverse], tedit0
1456 IgorA 475
  @@:
1338 IgorA 476
  cmp ah,16
1456 IgorA 477
  jne @f
1457 IgorA 478
    stdcall [ted_but_undo], tedit0
1456 IgorA 479
  @@:
1338 IgorA 480
  cmp ah,17
1456 IgorA 481
  jne @f
1457 IgorA 482
    stdcall [ted_but_redo], tedit0
1456 IgorA 483
  @@:
1338 IgorA 484
  cmp ah,18
1456 IgorA 485
  jne @f
486
    stdcall but_sumb_invis, tedit0
487
  @@:
1338 IgorA 488
  cmp ah,19
1456 IgorA 489
  jne @f
490
    stdcall but_k_words_show, tedit0
491
  @@:
1338 IgorA 492
  cmp ah,20
1449 IgorA 493
  jne @f
494
    stdcall but_synt_show, tedit0
495
  @@:
1338 IgorA 496
 
497
  cmp ah,200
498
  jne @f
1456 IgorA 499
    stdcall ted_but_open_syntax, tedit0
1338 IgorA 500
  @@:
501
  cmp ah,201
502
  jne @f
1457 IgorA 503
    stdcall [ted_but_find_next], tedit0
1338 IgorA 504
  @@:
505
 
506
  cmp ah,1
507
  jne still
508
.exit:
2708 IgorA 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 ;выход из программы
1456 IgorA 524
 
1338 IgorA 525
 
1467 IgorA 526
edit1 edit_box 250, 220, 5, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 4090, openfile_path, mouse_dd, 0
1457 IgorA 527
edit2 edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_find, mouse_dd, 0
1338 IgorA 528
 
2708 IgorA 529
unpac_mem dd 0
1338 IgorA 530
 
1343 IgorA 531
if lang eq ru
2632 IgorA 532
  head_f_i:
533
  head_f_l db 'Системная ошибка',0
1592 IgorA 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
2632 IgorA 540
  err_message_found_lib_3 db 'Не найдена библиотека ',39,'libimg.obj',39,0
541
  err_message_import_3 db 'Ошибка при импорте библиотеки ',39,'libimg.obj',39,0
2817 IgorA 542
  err_message_found_lib_4 db 'Не найдена библиотека ',39,'libini.obj',39,0
543
  err_message_import_4 db 'Ошибка при импорте библиотеки ',39,'libini.obj',39,0
1343 IgorA 544
else
2632 IgorA 545
  head_f_i:
546
  head_f_l db 'System error',0
1592 IgorA 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
2632 IgorA 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
2817 IgorA 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
1343 IgorA 557
end if
1338 IgorA 558
 
559
;library structures
560
l_libs_start:
2632 IgorA 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
2817 IgorA 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
1338 IgorA 571
load_lib_end:
572
 
2708 IgorA 573
IncludeIGlobals
1338 IgorA 574
i_end:
2855 IgorA 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 ;буфер для поиска текста
2708 IgorA 581
IncludeUGlobals
1467 IgorA 582
	align 16
583
	procinfo process_information
1705 IgorA 584
		rb 1024
1467 IgorA 585
	thread:
1705 IgorA 586
	rb 1024
3244 IgorA 587
    thread_coords:
588
	rb 1024
1338 IgorA 589
stacktop:
1705 IgorA 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
1338 IgorA 604
mem: