Subversion Repositories Kolibri OS

Rev

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