Subversion Repositories Kolibri OS

Rev

Rev 2855 | Rev 3244 | 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
1338 IgorA 21
 
1449 IgorA 22
include '../../proc32.inc'
2708 IgorA 23
;include '../../config.inc'
1338 IgorA 24
include '../../macros.inc'
3014 dunkaist 25
include '../../dll.inc'
1390 IgorA 26
include '../../develop/libraries/box_lib/load_lib.mac'
1449 IgorA 27
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
2708 IgorA 28
include '../../system/desktop/trunk/kglobals.inc'
29
include '../../system/desktop/trunk/unpacker.inc'
1343 IgorA 30
include 'lang.inc'
1467 IgorA 31
 
1338 IgorA 32
include 't_data.inc'
33
include 'strlen.inc'
34
include 't_draw.inc' ;draw main window functions
1457 IgorA 35
include 't_button.inc' ;text work functions
1338 IgorA 36
 
2632 IgorA 37
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
1338 IgorA 38
 
2632 IgorA 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
 
1456 IgorA 87
align 4
1338 IgorA 88
start:
1456 IgorA 89
  mcall 48,3,sc,sizeof.system_colors
1338 IgorA 90
 
91
  mcall 68,11
92
  or eax,eax
93
  jz button.exit
94
 
95
  mcall 66,1,1 ;scan code
1456 IgorA 96
  mcall 40,0x27
1338 IgorA 97
 
1456 IgorA 98
  mov esi,file_name
99
  call strlen
100
  mov ecx,eax
1467 IgorA 101
  mov edi,openfile_path
2632 IgorA 102
  cld
1456 IgorA 103
  rep movsb ;копируем имя файла в буфер edit1
1338 IgorA 104
 
1456 IgorA 105
load_libraries l_libs_start,load_lib_end
1338 IgorA 106
 
2102 IgorA 107
;проверка на сколько удачно загузились библиотеки
1456 IgorA 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
@@:
1338 IgorA 118
 
2102 IgorA 119
	cmp dword[version_text_edit],3
120
	jge @f
121
		stdcall [mb_create],msgbox_10,thread
122
		mcall -1
123
	@@:
124
 
1456 IgorA 125
;---------------------------------------------------------------------
1592 IgorA 126
	stdcall [ted_init], tedit0
127
	stdcall dword[tl_data_init], tree1
1338 IgorA 128
 
1467 IgorA 129
; OpenDialog initialisation
1592 IgorA 130
	stdcall [OpenDialog_Init],OpenDialog_data
1467 IgorA 131
 
2632 IgorA 132
; init toolbar file
133
	load_image_file 'te_icon.png', bmp_icon,1200*18
1338 IgorA 134
;---------------------------------------------------------------------
2632 IgorA 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
1338 IgorA 139
;---------------------------------------------------------------------
2632 IgorA 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
1338 IgorA 144
;------------------------------------------------------------------------------
1449 IgorA 145
  copy_path fn_syntax_dir,sys_path,file_name,0x0 ;берем путь к папке с файлами синтаксиса
1338 IgorA 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
@@:
1449 IgorA 157
  cmp byte[eax],'.' ;фильтруем файлы с именами '.' и '..'
1338 IgorA 158
  je .filter
1456 IgorA 159
    ;0x10000 ;1*2^16 - где 1 номер иконки с книгой
160
    stdcall dword[tl_node_add], eax,0x10000, tree1
1338 IgorA 161
 
1456 IgorA 162
    stdcall dword[tl_cur_next], tree1
1338 IgorA 163
  .filter:
164
  add eax,304
165
  loop @b
2102 IgorA 166
  stdcall dword[tl_cur_beg],tree1 ;ставим курсор на начало списка
1338 IgorA 167
.end_dir_init:
168
 
2817 IgorA 169
;--- load ini file ---
2855 IgorA 170
	copy_path ini_name,sys_path,file_name,0
2817 IgorA 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
2855 IgorA 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
	@@:
2817 IgorA 210
 
1338 IgorA 211
;--- load color option file ---
1457 IgorA 212
	mov ebx,dword[fn_col_option]
2708 IgorA 213
	call open_unpac_synt_file
1338 IgorA 214
 
215
;--- get cmd line ---
2708 IgorA 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
	@@:
1338 IgorA 223
 
2817 IgorA 224
 
225
 
1456 IgorA 226
align 4
1338 IgorA 227
red_win:
1467 IgorA 228
  call draw_window
229
 
230
align 4
231
still:
2125 IgorA 232
	mcall 10
1467 IgorA 233
 
2125 IgorA 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
1467 IgorA 248
 
249
align 4
250
draw_window:
2125 IgorA 251
	mcall 12,1
1338 IgorA 252
 
2125 IgorA 253
	mov edx,[sc.work]
254
	or  edx,0x73000000
255
	mov edi,hed
2817 IgorA 256
	mcall 0,dword[wnd_s_pos],dword[wnd_s_pos+4]
1338 IgorA 257
 
2125 IgorA 258
	mcall 9,procinfo,-1
259
	mov edi,tedit0 ;значение edi нужно для EvSize и ted_wnd_t
260
	call EvSize
1449 IgorA 261
 
2125 IgorA 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
1338 IgorA 268
 
1467 IgorA 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
 
1449 IgorA 276
  stdcall [edit_box_draw], dword edit1
277
  stdcall [menu_bar_draw], dword menu_data_1
1338 IgorA 278
 
279
  call draw_but_toolbar
280
 
2632 IgorA 281
  stdcall [ted_draw], tedit0
1338 IgorA 282
 
1343 IgorA 283
  mcall 12,2
1467 IgorA 284
  ret
1338 IgorA 285
 
1456 IgorA 286
align 4
1338 IgorA 287
mouse:
2125 IgorA 288
	stdcall [edit_box_mouse], dword edit1
1338 IgorA 289
 
2125 IgorA 290
	test word [edit1.flags],10b ;ed_focus ;если не в фокусе, выходим
291
	jne still
1338 IgorA 292
 
2125 IgorA 293
	stdcall [ted_mouse], tedit0
1338 IgorA 294
 
2125 IgorA 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
1338 IgorA 302
;-----------------------------------------------
303
.menu_bar_1:
2125 IgorA 304
	mov [menu_data_1.get_mouse_flag],1
1338 IgorA 305
; mouse event for Menu 1
2125 IgorA 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
	@@:
1338 IgorA 323
.mnu_1:
2125 IgorA 324
	jmp still
1338 IgorA 325
;---------------------------------------------------------------------
326
 
1456 IgorA 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
1338 IgorA 333
  ror ax,8
334
  xor ah,ah
335
  add bx,ax
336
  mov ah,byte[ebx]
1456 IgorA 337
  pop ebx
1338 IgorA 338
  ret
1456 IgorA 339
endp
1338 IgorA 340
 
1456 IgorA 341
align 4
1338 IgorA 342
key:
1456 IgorA 343
  mcall 66,3 ;66.3 получить состояние управляющих клавиш
1457 IgorA 344
  xor esi,esi
1338 IgorA 345
  mov ecx,1
346
  test al,0x03 ;[Shift]
347
  jz @f
1456 IgorA 348
    mov cl,2
1457 IgorA 349
    or esi,KM_SHIFT
1338 IgorA 350
  @@:
351
  test al,0x0c ;[Ctrl]
352
  jz @f
1457 IgorA 353
    or esi,KM_CTRL
1338 IgorA 354
  @@:
355
  test al,0x30 ;[Alt]
356
  jz @f
1456 IgorA 357
    mov cl,3
1457 IgorA 358
    or esi,KM_ALT
1338 IgorA 359
  @@:
360
  test al,0x80 ;[NumLock]
361
  jz @f
1457 IgorA 362
    or esi,KM_NUMLOCK
1338 IgorA 363
  @@:
1457 IgorA 364
 
1456 IgorA 365
  mcall 26,2,,conv_tabl ;26.2 получить раскладку клавиатуры
366
  mcall 2 ;получаем код нажатой клавиши
1458 IgorA 367
  stdcall [tl_key], tree1
1338 IgorA 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
 
1456 IgorA 384
    stdcall KeyConvertToASCII, dword conv_tabl
385
    stdcall [edit_box_key], dword edit1
1338 IgorA 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
 
1456 IgorA 404
    stdcall KeyConvertToASCII, dword conv_tabl
1449 IgorA 405
    stdcall [edit_box_key], dword edit2
1338 IgorA 406
    jmp still
407
  @@:
408
 
1457 IgorA 409
  stdcall [ted_key], tedit0, conv_tabl,esi
1338 IgorA 410
  jmp still
411
 
1457 IgorA 412
align 4
1338 IgorA 413
button:
1449 IgorA 414
;  cmp [menu_active],1 ;если нажали меню, то сначала реакция на меню
1338 IgorA 415
;  jne @f ;mouse.menu_bar_1
416
;    mov [menu_active],0
417
;    jmp still
418
;  @@:
419
 
1449 IgorA 420
  mcall 17 ;получить код нажатой кнопки
1338 IgorA 421
  cmp ah,3
422
  jne @f
1457 IgorA 423
    call ted_but_new_file
1338 IgorA 424
  @@:
425
  cmp ah,4
426
  jne @f
1457 IgorA 427
    call ted_but_open_file
1338 IgorA 428
  @@:
429
  cmp ah,5
430
  jne @f
1457 IgorA 431
    stdcall [ted_but_save_file], tedit0,run_file_70,[edit1.text]
1338 IgorA 432
  @@:
433
  cmp ah,6
1456 IgorA 434
  jne @f
1457 IgorA 435
    stdcall [ted_but_select_word], tedit0
1456 IgorA 436
  @@:
1338 IgorA 437
  cmp ah,7
1456 IgorA 438
  jne @f
1457 IgorA 439
    stdcall [ted_but_cut], tedit0
1456 IgorA 440
  @@:
1338 IgorA 441
  cmp ah,8
442
  jne @f
1457 IgorA 443
    stdcall [ted_but_copy], tedit0
1338 IgorA 444
  @@:
445
  cmp ah,9
1456 IgorA 446
  jne @f
1457 IgorA 447
    stdcall [ted_but_paste], tedit0
1456 IgorA 448
  @@:
1338 IgorA 449
  cmp ah,10
1449 IgorA 450
  jne @f
1457 IgorA 451
    call ted_but_find
1449 IgorA 452
  @@:
1338 IgorA 453
  cmp ah,11
1456 IgorA 454
  jne @f
455
    call but_replace
456
  @@:
1338 IgorA 457
  cmp ah,12
1456 IgorA 458
  jne @f
459
    call but_find_key_w
460
  @@:
1338 IgorA 461
  cmp ah,13
1456 IgorA 462
  jne @f
1457 IgorA 463
    stdcall [ted_but_sumb_upper], tedit0
1456 IgorA 464
  @@:
1338 IgorA 465
  cmp ah,14
1456 IgorA 466
  jne @f
1457 IgorA 467
    stdcall [ted_but_sumb_lover], tedit0
1456 IgorA 468
  @@:
1338 IgorA 469
  cmp ah,15
1456 IgorA 470
  jne @f
1457 IgorA 471
    stdcall [ted_but_reverse], tedit0
1456 IgorA 472
  @@:
1338 IgorA 473
  cmp ah,16
1456 IgorA 474
  jne @f
1457 IgorA 475
    stdcall [ted_but_undo], tedit0
1456 IgorA 476
  @@:
1338 IgorA 477
  cmp ah,17
1456 IgorA 478
  jne @f
1457 IgorA 479
    stdcall [ted_but_redo], tedit0
1456 IgorA 480
  @@:
1338 IgorA 481
  cmp ah,18
1456 IgorA 482
  jne @f
483
    stdcall but_sumb_invis, tedit0
484
  @@:
1338 IgorA 485
  cmp ah,19
1456 IgorA 486
  jne @f
487
    stdcall but_k_words_show, tedit0
488
  @@:
1338 IgorA 489
  cmp ah,20
1449 IgorA 490
  jne @f
491
    stdcall but_synt_show, tedit0
492
  @@:
1338 IgorA 493
 
494
  cmp ah,200
495
  jne @f
1456 IgorA 496
    stdcall ted_but_open_syntax, tedit0
1338 IgorA 497
  @@:
498
  cmp ah,201
499
  jne @f
1457 IgorA 500
    stdcall [ted_but_find_next], tedit0
1338 IgorA 501
  @@:
502
 
503
  cmp ah,1
504
  jne still
505
.exit:
2708 IgorA 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 ;выход из программы
1456 IgorA 521
 
1338 IgorA 522
 
1467 IgorA 523
edit1 edit_box 250, 220, 5, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 4090, openfile_path, mouse_dd, 0
1457 IgorA 524
edit2 edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_find, mouse_dd, 0
1338 IgorA 525
 
2708 IgorA 526
unpac_mem dd 0
1338 IgorA 527
 
1343 IgorA 528
if lang eq ru
2632 IgorA 529
  head_f_i:
530
  head_f_l db 'Системная ошибка',0
1592 IgorA 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
2632 IgorA 537
  err_message_found_lib_3 db 'Не найдена библиотека ',39,'libimg.obj',39,0
538
  err_message_import_3 db 'Ошибка при импорте библиотеки ',39,'libimg.obj',39,0
2817 IgorA 539
  err_message_found_lib_4 db 'Не найдена библиотека ',39,'libini.obj',39,0
540
  err_message_import_4 db 'Ошибка при импорте библиотеки ',39,'libini.obj',39,0
1343 IgorA 541
else
2632 IgorA 542
  head_f_i:
543
  head_f_l db 'System error',0
1592 IgorA 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
2632 IgorA 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
2817 IgorA 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
1343 IgorA 554
end if
1338 IgorA 555
 
556
;library structures
557
l_libs_start:
2632 IgorA 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
2817 IgorA 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
1338 IgorA 568
load_lib_end:
569
 
2708 IgorA 570
IncludeIGlobals
1338 IgorA 571
i_end:
2855 IgorA 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 ;буфер для поиска текста
2708 IgorA 578
IncludeUGlobals
1467 IgorA 579
	rb 1024
580
	align 16
581
	procinfo process_information
1705 IgorA 582
		rb 1024
1467 IgorA 583
	thread:
1705 IgorA 584
	rb 1024
1338 IgorA 585
stacktop:
1705 IgorA 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
1338 IgorA 600
mem: