Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
341 heavyiron 1
;   RDsave для Kolibri (0.6.5.0 и старше)
4213 heavyiron 2
;   Save RAM-disk to hard or floppy drive
1606 mario79 3
;---------------------------------------------------------------------
205 heavyiron 4
;   Mario79 2005
341 heavyiron 5
;   Heavyiron 12.02.2007
1070 Lrz 6
;        11.05.2009 - для работы нужна системная библиотека box_lib.obj
4213 heavyiron 7
;   Mario79   08.09.2010 - select path with OpenDialog,keys 1,2,3,4 for select options
8
;   Heavyiron 01.12.2013 - new logic
341 heavyiron 9
;---------------------------------------------------------------------
205 heavyiron 10
appname equ 'RDsave '
4319 heavyiron 11
version equ '1.43'
4810 eAndrew 12
debug	equ no
3634 fedesco 13
 
4810 eAndrew 14
use32	     ; включить 32-битный режим ассемблера
4213 heavyiron 15
org 0x0      ; адресация с нуля
205 heavyiron 16
 
4810 eAndrew 17
db 'MENUET01'	 ; 8-байтный идентификатор MenuetOS
18
dd 0x01 	 ; версия заголовка (всегда 1)
19
dd START	 ; адрес первой команды
20
dd IM_END	 ; размер программы
21
dd I_END	 ; количество памяти
22
dd stacktop	 ; адрес вершины стека
23
dd PARAMS	 ; адрес буфера для параметров
4213 heavyiron 24
dd cur_dir_path
205 heavyiron 25
 
4213 heavyiron 26
 
27
include 'lang.inc'
28
include '../../../macros.inc'
29
if debug eq yes
30
include '../../../debug.inc'
31
end if
32
include '../../../proc32.inc'
33
include '../../../dll.inc'
1111 Lrz 34
include '../../../develop/libraries/box_lib/load_lib.mac'
1373 IgorA 35
include '../../../develop/libraries/box_lib/trunk/box_lib.mac'
4213 heavyiron 36
include 'str.inc'
1070 Lrz 37
 
4810 eAndrew 38
	@use_library
341 heavyiron 39
;---------------------------------------------------------------------
40
;---  НАЧАЛО ПРОГРАММЫ  ----------------------------------------------
41
;---------------------------------------------------------------------
1070 Lrz 42
align 4
43
START:
4213 heavyiron 44
;---------------------------------------------------------------------
4810 eAndrew 45
	mcall  68,11
1606 mario79 46
 
47
load_libraries l_libs_start,end_l_libs
4810 eAndrew 48
	inc	eax
49
	test	eax,eax
50
	jz	close
1606 mario79 51
 
4810 eAndrew 52
	stdcall dll.Init,[init_lib]
205 heavyiron 53
 
4810 eAndrew 54
	invoke	ini_get_int,ini_file,asettings,aautoclose,0
55
	mov	[autoclose],eax
56
	invoke	ini_get_str,ini_file,apath,apath,fname_buf,4096,path
57
	stdcall _lstrcpy,ini_path,fname_buf
58
	stdcall _lstrcpy,filename_area,start_temp_file_name
4213 heavyiron 59
 
4810 eAndrew 60
	mov   eax,PARAMS
61
	cmp   byte[eax], 0
62
	je    no_params
63
	cmp   byte[eax], 'h'
64
	je    @f
65
	cmp   byte[eax], 'H'
66
	jne   .no_h
1606 mario79 67
@@:
4810 eAndrew 68
	mov   [hidden],1
69
	jmp   no_params
4213 heavyiron 70
.no_h:
4810 eAndrew 71
	mov   [param],1
72
	stdcall _lstrcpy,fname_buf,eax
73
	mov   ah,2
74
	jmp   noclose
1228 Lrz 75
 
4270 heavyiron 76
;---------------------------------------------------------------------
4213 heavyiron 77
no_params:
4810 eAndrew 78
	stdcall _lstrcpy,check_dir,ini_path
79
	call	check_path
80
	test	eax,eax
81
	jz	path_ok
82
	cmp	eax,6
83
	je	path_ok
4213 heavyiron 84
;---------------------------------------------------------------------
85
if debug eq yes
86
dps 'read_folder_error'
87
newline
88
end if
89
;---------------------------------------------------------------------
4290 heavyiron 90
default_path:
4810 eAndrew 91
	stdcall _lstrcpy,fname_buf,communication_area_default_path
92
	mov	[hidden],0
4213 heavyiron 93
 
94
;OpenDialog     initialisation
4810 eAndrew 95
	push	dword OpenDialog_data
96
	call	[OpenDialog_Init]
4213 heavyiron 97
 
1606 mario79 98
; prepare for PathShow
4810 eAndrew 99
	push	dword PathShow_data_1
100
	call	[PathShow_prepare]
4290 heavyiron 101
 
4810 eAndrew 102
	mcall	40,0x00000027
4290 heavyiron 103
 
4810 eAndrew 104
	call	draw_window
105
	mov	ah,3
106
	jmp	noclose
4213 heavyiron 107
;---------------------------------------------------------------------
108
path_ok:
109
;OpenDialog     initialisation
4810 eAndrew 110
	push	dword OpenDialog_data
111
	call	[OpenDialog_Init]
1606 mario79 112
 
4213 heavyiron 113
; prepare for PathShow
4810 eAndrew 114
	push	dword PathShow_data_1
115
	call	[PathShow_prepare]
205 heavyiron 116
 
4810 eAndrew 117
	mcall	40,0x00000027
4213 heavyiron 118
 
4810 eAndrew 119
	cmp	[hidden],1
120
	jne	red
121
	mov	ah,2
122
	jmp	noclose
4213 heavyiron 123
red:
4810 eAndrew 124
	call	draw_window
341 heavyiron 125
;---------------------------------------------------------------------
126
still:
4810 eAndrew 127
	mcall 10
205 heavyiron 128
 
4810 eAndrew 129
	dec	eax	 ; перерисовать окно?
130
	jz	red	 ; если да - на метку red
131
	dec	eax
132
	jz	key
133
	dec	eax
134
	jz	button
135
	jmp	still
1606 mario79 136
;---------------------------------------------------------------------
341 heavyiron 137
button:
4810 eAndrew 138
	mcall	17	; получить идентификатор нажатой кнопки
139
	cmp	ah,1		 ; кнопка с id=1("закрыть")?
140
	jne	noclose
1070 Lrz 141
close:
4810 eAndrew 142
	mcall	-1	    ; функция -1: завершить программу
143
 
4213 heavyiron 144
;---------------------------------------------------------------------
145
key:
4810 eAndrew 146
	mcall	2
147
	cmp	ah,0x1b
148
	je	close
149
	cmp	ah,0x0D
150
	jne	@f
151
	mov	ah,2
152
	jmp	noclose
4213 heavyiron 153
@@:
4810 eAndrew 154
	cmp	ah,9h
155
	jne	still
4213 heavyiron 156
;---------------------------------------------------------------------
341 heavyiron 157
noclose:
4810 eAndrew 158
	mov	ecx,fname_buf
159
	push  16
160
	mov   ebx,1
161
	cmp   byte[ecx+1],'f'
162
	je    @f
163
	cmp   byte[ecx+1],'F'
164
	jne   not_fdd
4213 heavyiron 165
@@:
4810 eAndrew 166
	cmp   byte[ecx+4],'1'
167
	jne   @f
168
	cmp   ah,2
169
	je    doit
4213 heavyiron 170
@@:
4810 eAndrew 171
	inc   ebx
172
	cmp   ah,2
173
	je    doit
4213 heavyiron 174
not_fdd:
4810 eAndrew 175
	push  18
176
	mov   ebx,6	; 18.6 = save to specified folder
177
	cmp   ah,2
178
	je    doit
1606 mario79 179
 
180
; invoke OpenDialog
4810 eAndrew 181
	push	dword OpenDialog_data
182
	call	[OpenDialog_Start]
183
	cmp	[OpenDialog_data.status],1
184
	jne	still
1606 mario79 185
 
186
; prepare for PathShow
4810 eAndrew 187
	push	dword PathShow_data_1
188
	call	[PathShow_prepare]
189
	call	draw_window
190
	mov	ah,2
191
	jmp	noclose
1606 mario79 192
 
4213 heavyiron 193
doit:
4810 eAndrew 194
	cmp	[param],0
195
	jne	 @f
196
	call	save_ini
4270 heavyiron 197
@@:
4810 eAndrew 198
	cmp	byte[ecx+1],'r'
199
	je	@f
200
	cmp	byte[ecx+1],'R'
5142 Heavyiron 201
	je	@f
202
        cmp     byte[ecx],'/'
203
	je	not_rd
4270 heavyiron 204
@@:
4810 eAndrew 205
	mov	edx,rdError
206
	call	print_err
207
	jmp	still
4290 heavyiron 208
not_rd:
4810 eAndrew 209
	cmp	 [hidden],0
210
	jne	 @f
211
	pusha
212
	stdcall  _lstrcpy,msg,label2
213
	mov	 eax,[sc.work_text]
214
	or	 eax,0xc0000088
215
	mov	 [color],eax
216
	call	print_msg
217
	popa
4270 heavyiron 218
@@:
4810 eAndrew 219
	pop	eax
220
	mcall
221
	call	check_for_error
222
	jmp	still
1606 mario79 223
 
224
;---------------------------------------------------------------------
4810 eAndrew 225
check_for_error:		      ;Обработчик ошибок
226
	test	eax,eax
227
	jz	print_ok
228
	cmp	ebx,6
229
	je	@f
230
	mov	edx,error11
231
	jmp	print_err
232
@@:
233
	cmp	eax, 11
234
	ja	.unknown
235
	mov	edx, [errors+eax*4]
236
	stdcall _lstrcpy,msg,error
237
	stdcall _lstrcat,msg,edx
238
	mov	edx,msg
239
	jmp	print_err
4213 heavyiron 240
.unknown:
4810 eAndrew 241
	mov	edx, aUnknownError
4290 heavyiron 242
 
4213 heavyiron 243
print_err:
4810 eAndrew 244
	stdcall _lstrlen,ini_path
245
	pusha
246
	invoke	ini_set_str,ini_file,apath,apath,ini_path,eax
247
	popa
248
	stdcall _lstrcpy,msg,edx
249
	cmp	[hidden],1
250
	je	@f
251
	cmp	[param],1
252
	je	@f
253
	mov	 ecx,[sc.work_text]
254
	or	 ecx,0xc0880000
255
	mov	 [color],ecx
256
	call	print_msg
257
	ret
4270 heavyiron 258
@@:
4810 eAndrew 259
	stdcall _lstrcpy, ntf_msg, ntf_start
260
	stdcall _lstrcat, ntf_msg, edx
261
	stdcall _lstrcat, ntf_msg, ntf_end_e
262
	mov	dword [is_notify + 8], ntf_msg
263
	mcall	70, is_notify
264
	mov	[param],0
265
	mov	[hidden],0
266
	stdcall _lstrcpy,fname_buf,ini_path
267
	jmp	no_params
4290 heavyiron 268
 
4213 heavyiron 269
print_ok:
4810 eAndrew 270
	cmp	 [hidden],1
271
	je	 @f
272
	cmp	 [param],1
273
	je	 @f
274
	stdcall  _lstrcpy,msg,ok
275
	mov	 ecx,[sc.work_text]
276
	or	 ecx,0xc0008800
277
	mov	 [color],ecx
278
	call	 print_msg
279
	mcall	 5,100
280
	cmp	 [autoclose],1
281
	je	 close
282
	ret
4319 heavyiron 283
@@:
4810 eAndrew 284
	stdcall  _lstrcpy,msg,ok
285
	stdcall  _lstrcat,msg,fname_buf
286
	stdcall _lstrcpy, ntf_msg, ntf_start
287
	stdcall _lstrcat, ntf_msg, msg
288
	stdcall _lstrcat, ntf_msg, ntf_end_o
4811 eAndrew 289
	mov	 edx,ntf_msg
4810 eAndrew 290
	mov	 dword [is_notify + 8], edx
291
	mcall	 70, is_notify
292
	mcall	 5,100
293
	jmp	 close
4319 heavyiron 294
;---------------------------------------------------------------------
295
print_msg:
4810 eAndrew 296
	mcall	13,<5,380>,<96,10>,[sc.work]
297
	stdcall _lstrlen,msg
298
	lea	eax,[eax+eax*2]
299
	add	eax,eax
300
	mov	ebx,390
301
	sub	ebx,eax
302
	shl	ebx,15
303
	add	ebx,96
304
	mcall	4, ,[color],msg, ,[sc.work]
305
	ret
1606 mario79 306
;---------------------------------------------------------------------
4213 heavyiron 307
draw_PathShow:
4810 eAndrew 308
	pusha
309
	mcall	13,<15,280>,<32,16>,0xffffff
310
	push	dword PathShow_data_1
311
	call	[PathShow_draw]
312
	popa
313
	ret
1606 mario79 314
;---------------------------------------------------------------------
4213 heavyiron 315
save_ini:
4810 eAndrew 316
	pusha
317
	stdcall _lstrlen,fname_buf
318
	invoke	ini_set_str,ini_file,apath,apath,fname_buf,eax
319
	invoke	ini_set_int,ini_file,asettings,aautoclose,[autoclose]
320
	popa
321
	ret
341 heavyiron 322
;---------------------------------------------------------------------
4213 heavyiron 323
check_path:
4810 eAndrew 324
stdcall _lstrlen,check_dir
325
	add	eax,check_dir
4213 heavyiron 326
@@:
4810 eAndrew 327
	dec	eax
328
	cmp	byte [eax],'/'
329
	jne	@b
330
	mov	byte [eax+1],0
4213 heavyiron 331
 
4810 eAndrew 332
	mcall	70,read_folder
333
	ret
1606 mario79 334
;---------------------------------------------------------------------
4213 heavyiron 335
;---  Draw window  ---------------------------------------------------
341 heavyiron 336
;---------------------------------------------------------------------
205 heavyiron 337
draw_window:
5142 Heavyiron 338
	mcall  48,3,sc,sizeof.system_colors
4810 eAndrew 339
	mcall	12,1
205 heavyiron 340
 
4810 eAndrew 341
	mov	edx,[sc.work]
342
	or	edx,0x34000000
343
	mcall	0,<200,400>,<200,130>, , ,title
205 heavyiron 344
 
4213 heavyiron 345
;buttons
4810 eAndrew 346
	mcall	8,<198,70>,<68,20>,1,[sc.work_button]
347
	inc	edx
348
	mcall	 ,<125,70>,
349
	inc	edx
350
	mcall	 ,<300,75>,<30,20>
1070 Lrz 351
 
4213 heavyiron 352
;labels
4810 eAndrew 353
	mov	ecx,[sc.work_button_text]
354
	or	ecx,0x80000000
355
	mcall	4,<134,75>, ,save
356
	mcall	 ,<215,75>, ,cancel
357
	mcall	 ,<315,36>, ,select
205 heavyiron 358
 
4810 eAndrew 359
	mov	ecx,[sc.work]
360
	mov	dword [frame_data.font_backgr_color],ecx
361
	push	dword frame_data
362
	call	[Frame_draw]
205 heavyiron 363
 
4810 eAndrew 364
	call	draw_PathShow
365
	call	print_msg
205 heavyiron 366
 
4810 eAndrew 367
	mcall	12,2
368
	ret
369
 
341 heavyiron 370
;---------------------------------------------------------------------
4213 heavyiron 371
;---  Data  ----------------------------------------------------------
1606 mario79 372
;---------------------------------------------------------------------
205 heavyiron 373
if lang eq ru
4810 eAndrew 374
save		db 'Сохранить',0
375
cancel		db 'Отмена',0
376
select		db 'Изменить',0
377
label1		db ' Образ будет сохранен в: ',0
378
label2		db 'Сохранение образа...',0
379
ok		db 'RAM-диск сохранен успешно ',0
380
error1		db 'не определена база и/или раздел жёсткого диска',0
381
error2		db 'функция не поддерживается для данной файловой системы',0
382
error3		db 'неизвестная файловая система',0
383
error4		db 'странно... Ошибка 4',0
384
error5		db 'несуществующий путь',0
385
error6		db 'файл закончился',0
386
error7		db 'указатель вне памяти приложения',0
387
error8		db 'диск заполнен',0
388
error9		db 'файловая структура разрушена',0
389
error10 	db 'доступ запрещён',0
390
error11 	db 'Ошибка устройства',0
391
aUnknownError	db 'Неизвестная ошибка',0
392
rdError 	db 'Нельзя сохранять образ в самого себя',0
393
error		db 'Ошибка: ',0
1606 mario79 394
;---------------------------------------------------------------------
605 kaitz 395
else if lang eq et
4810 eAndrew 396
save		db 'Salvesta',0
397
cancel		db 'Cancel',0
398
select		db ' Valige',0
399
label1		db ' RAM-drive will be saved as: ',0
400
label2		db 'Saving in progress...',0
401
ok		db 'RAM-ketas salvestatud edukalt ',0
402
error1		db 'hard disk base and/or partition not defined',0
403
error2		db 'the file system does not support this function',0
404
error3		db 'tundmatu failis№steem',0
405
error4		db 'strange... Error 4',0
406
error5		db 'vigane teekond',0
407
error6		db 'end of file',0
408
error7		db 'pointer is outside of application memory',0
409
error8		db 'ketas tфis',0
410
error9		db 'FAT tabel vigane',0
411
error10 	db 'juurdepффs keelatud',0
412
error11 	db 'Seadme viga',0
413
aUnknownError	db 'Tundmatu viga',0
414
rdError 	db "You can't save image on itself",0
415
error		db 'Viga: ',0
1606 mario79 416
;---------------------------------------------------------------------
3634 fedesco 417
else if lang eq it
4810 eAndrew 418
save		db '  Salva',0
419
cancel		db 'Cancel',0
420
select		db 'Seleziona',0
421
label1		db ' RAM-drive will be saved as: ',0
422
label2		db 'Saving in progress...',0
423
ok		db 'Il RAM-drivet e stato salvato ',0
424
error1		db 'hard disk base and/or partition not defined',0
425
error2		db 'the file system does not support this function',0
426
error3		db 'filesystem sconosciuto',0
427
error4		db 'strange... Error 4',0
428
error5		db 'percorso non valido',0
429
error6		db 'end of file',0
430
error7		db 'pointer is outside of application memory',0
431
error8		db 'disco pieno',0
432
error9		db 'tabella FAT corrotta',0
433
error10 	db 'accesso negato',0
434
error11 	db 'Errore di device',0
435
aUnknownError	db 'Errore sconosciuto',0
436
rdError 	db "You can't save image on itself",0
437
error		db 'Errore: ',0
3634 fedesco 438
;---------------------------------------------------------------------
205 heavyiron 439
else
4810 eAndrew 440
save		db '  Save',0
441
cancel		db 'Cancel',0
442
select		db ' Select',0
443
label1		db ' RAM-drive will be saved as: ',0
444
label2		db 'Saving in progress...',0
445
ok		db 'RAM-drive was saved successfully ',0
446
error1		db 'hard disk base and/or partition not defined',0
447
error2		db 'the file system does not support this function',0
448
error3		db 'unknown file system',0
449
error4		db 'strange... Error 4',0
450
error5		db 'incorrect path',0
451
error6		db 'end of file',0
452
error7		db 'pointer is outside of application memory',0
453
error8		db 'disk is full',0
454
error9		db 'file structure is destroyed',0
455
error10 	db 'access denied',0
456
error11 	db 'Device error',0
457
aUnknownError	db 'Unknown error',0
458
rdError 	db "You can't save image on itself",0
459
error		db 'Error: ',0
205 heavyiron 460
end if
4213 heavyiron 461
;---------------------------------------------------------------------
4810 eAndrew 462
ntf_start	db '"RDSave\n', 0
463
ntf_end_o	db '" -tO', 0
464
ntf_end_e	db '" -tE', 0
465
;---------------------------------------------------------------------
4213 heavyiron 466
errors:
4810 eAndrew 467
	dd	ok
468
	dd	error1
469
	dd	error2
470
	dd	error3
471
	dd	error4
472
	dd	error5
473
	dd	error6
474
	dd	error7
475
	dd	error8
476
	dd	error9
477
	dd	error10
478
	dd	error11
4213 heavyiron 479
;---------------------------------------------------------------------
4270 heavyiron 480
 
4810 eAndrew 481
title	db appname,version,0
4270 heavyiron 482
 
4213 heavyiron 483
;Lib_DATA
1070 Lrz 484
;Всегда соблюдать последовательность в имени.
4810 eAndrew 485
system_dir_Boxlib	db '/sys/lib/box_lib.obj',0
486
system_dir_ProcLib	db '/sys/lib/proc_lib.obj',0
487
system_dir_libini	db '/sys/lib/libini.obj',0
4213 heavyiron 488
;---------------------------------------------------------------------
1070 Lrz 489
head_f_i:
4810 eAndrew 490
head_f_l	db 'System error',0
1606 mario79 491
 
4810 eAndrew 492
err_message_found_lib1	db 'box_lib.obj - Not found!',0
493
err_message_found_lib2	db 'proc_lib.obj - Not found!',0
494
err_message_found_lib3	db 'libini.obj - Not found!',0
1606 mario79 495
 
4810 eAndrew 496
err_message_import1	db 'box_lib.obj - Wrong import!',0
497
err_message_import2	db 'proc_lib.obj - Wrong import!',0
498
err_message_import3	db 'libini.obj - Wrong import!',0
1606 mario79 499
;---------------------------------------------------------------------
500
l_libs_start:
501
 
502
library01  l_libs system_dir_Boxlib+9, cur_dir_path, library_path, system_dir_Boxlib, \
503
err_message_found_lib1, head_f_l, Box_lib_import, err_message_import1, head_f_i
504
 
505
library02  l_libs system_dir_ProcLib+9, cur_dir_path, library_path, system_dir_ProcLib, \
506
err_message_found_lib2, head_f_l, ProcLib_import, err_message_import2, head_f_i
507
 
4213 heavyiron 508
library03  l_libs system_dir_libini+9, cur_dir_path, library_path, system_dir_libini, \
509
err_message_found_lib3, head_f_l, libini_import, err_message_import3, head_f_i
510
 
1606 mario79 511
end_l_libs:
512
;---------------------------------------------------------------------
513
OpenDialog_data:
4810 eAndrew 514
.type			dd 1	; Save
515
.procinfo		dd procinfo	;+4
516
.com_area_name		dd communication_area_name	;+8
517
.com_area		dd 0	;+12
518
.opendir_path		dd temp_dir_path	;+16
519
.dir_default_path	dd communication_area_default_path	;+20
520
.start_path		dd open_dialog_path	;+24
521
.draw_window		dd draw_window	;+28
522
.status 		dd 0	;+32
523
.openfile_pach		dd fname_buf	;+36
524
.filename_area		dd filename_area	;+40
525
.filter_area		dd Filter
1606 mario79 526
.x:
4810 eAndrew 527
.x_size 		dw 420 ;+48 ; Window X size
528
.x_start		dw 200 ;+50 ; Window X position
1606 mario79 529
.y:
4810 eAndrew 530
.y_size 		dw 320 ;+52 ; Window y size
531
.y_start		dw 120 ;+54 ; Window Y position
1606 mario79 532
 
533
communication_area_name:
4810 eAndrew 534
	db 'FFFFFFFF_open_dialog',0
1606 mario79 535
open_dialog_path:
1702 Lrz 536
if __nightbuild eq yes
537
    db '/sys/MANAGERS/opendial',0
538
else
539
    db '/sys/File Managers/opendial',0
540
end if
4213 heavyiron 541
communication_area_default_path:
4810 eAndrew 542
	db '/',0
1606 mario79 543
 
544
Filter:
4810 eAndrew 545
dd	Filter.end - Filter
1606 mario79 546
.1:
4810 eAndrew 547
db	'IMG',0
548
db	'IMA',0
1606 mario79 549
.end:
4810 eAndrew 550
db	0
1606 mario79 551
 
4810 eAndrew 552
start_temp_file_name:	db 'kolibri.img',0
1606 mario79 553
 
554
;---------------------------------------------------------------------
1070 Lrz 555
align 4
1606 mario79 556
ProcLib_import:
4810 eAndrew 557
OpenDialog_Init 	dd aOpenDialog_Init
558
OpenDialog_Start	dd aOpenDialog_Start
559
	dd	0
560
	dd	0
561
aOpenDialog_Init	db 'OpenDialog_init',0
562
aOpenDialog_Start	db 'OpenDialog_start',0
1606 mario79 563
;---------------------------------------------------------------------
4213 heavyiron 564
PathShow_data_1:
4810 eAndrew 565
.type			dd 0	;+0
566
.start_y		dw 36	;+4
567
.start_x		dw 20	;+6
568
.font_size_x		dw 6	;+8     ; 6 - for font 0, 8 - for font 1
569
.area_size_x		dw 270	;+10
570
.font_number		dd 0	;+12    ; 0 - monospace, 1 - variable
571
.background_flag	dd 0	;+16
572
.font_color		dd 0	;+20
573
.background_color	dd 0	;+24
574
.text_pointer		dd fname_buf	;+28
575
.work_area_pointer	dd text_work_area	;+32
576
.temp_text_length	dd 0	;+36
4213 heavyiron 577
;---------------------------------------------------------------------
1606 mario79 578
align 4
3634 fedesco 579
Box_lib_import:
4213 heavyiron 580
;edit_box_draw           dd aEdit_box_draw
581
;edit_box_key            dd aEdit_box_key
582
;edit_box_mouse          dd aEdit_box_mouse
583
;version_ed              dd aVersion_ed
485 heavyiron 584
 
4810 eAndrew 585
PathShow_prepare	dd sz_PathShow_prepare
586
PathShow_draw		dd sz_PathShow_draw
587
Frame_draw		dd sz_Frame_draw
588
			dd 0
589
			dd 0
1070 Lrz 590
 
4213 heavyiron 591
;aEdit_box_draw          db 'edit_box',0
592
;aEdit_box_key           db 'edit_box_key',0
593
;aEdit_box_mouse         db 'edit_box_mouse',0
594
;aVersion_ed             db 'version_ed',0
1070 Lrz 595
 
4810 eAndrew 596
sz_PathShow_prepare	db 'PathShow_prepare',0
597
sz_PathShow_draw	db 'PathShow_draw',0
1070 Lrz 598
 
4810 eAndrew 599
sz_Frame_draw		db 'frame_draw',0
4213 heavyiron 600
;szVersion_frame        db 'version_frame',0
601
;---------------------------------------------------------------------
602
frame_data:
4810 eAndrew 603
.type			dd 0 ;+0
4213 heavyiron 604
.x:
4810 eAndrew 605
.x_size 		dw 374 ;+4
606
.x_start		dw 8 ;+6
4213 heavyiron 607
.y:
4810 eAndrew 608
.y_size 		dw 45 ;+8
609
.y_start		dw 17 ;+10
610
.ext_fr_col		dd 0x888888 ;+12
611
.int_fr_col		dd 0xffffff ;+16
612
.draw_text_flag 	dd 1 ;+20
613
.text_pointer		dd label1 ;+24
614
.text_position		dd 0 ;+28
615
.font_number		dd 0 ;+32
616
.font_size_y		dd 9 ;+36
617
.font_color		dd 0x0 ;+40
618
.font_backgr_color	dd 0xdddddd ;+44
4213 heavyiron 619
;---------------------------------------------------------------------
620
align 4
621
libini_import:
622
init_lib     dd a_init
623
ini_get_str  dd aini_get_str
624
ini_get_int  dd aini_get_int
625
ini_set_str  dd aini_set_str
626
ini_set_int  dd aini_set_int
4810 eAndrew 627
	     dd 0
628
	     dd 0
629
a_init	     db 'lib_init',0
4213 heavyiron 630
aini_get_str db 'ini_get_str',0
631
aini_get_int db 'ini_get_int',0
632
aini_set_str db 'ini_set_str',0
633
aini_set_int db 'ini_set_int',0
634
;---------------------------------------------------------------------
1070 Lrz 635
 
4213 heavyiron 636
apath db 'path',0
637
asettings db 'settings',0
638
aautoclose db 'autoclose',0
4810 eAndrew 639
path	db '/hd2/1/kolibri.img',0
4213 heavyiron 640
ini_file db  '/sys/settings/rdsave.ini',0
641
;ini_file db  '/sys/rdsave.ini',0
642
;---------------------------------------------------------------------
643
is_notify:
4810 eAndrew 644
    dd	  7, 0, ok, 0, 0
645
    db	  "/rd/1/@notify", 0
646
 
4213 heavyiron 647
read_folder:
4810 eAndrew 648
.subfunction	dd 1
649
.start		dd 0
650
.flags		dd 0
651
.size		dd 1
652
.return 	dd folder_data
653
		db 0
654
.name:		dd check_dir
1070 Lrz 655
 
4213 heavyiron 656
param dd 0
657
hidden dd 0
658
;---------------------------------------------------------------------
659
IM_END:
660
;---------------------------------------------------------------------
661
align 4
662
PARAMS:
663
       rb 256
664
ini_path:
4810 eAndrew 665
	rb 4096
4213 heavyiron 666
check_dir:
4810 eAndrew 667
	rb 4096
1606 mario79 668
 
4213 heavyiron 669
sc     system_colors
1606 mario79 670
 
4213 heavyiron 671
autoclose rd 1
1606 mario79 672
 
4810 eAndrew 673
color	rd 1
4319 heavyiron 674
 
675
msg:
4810 eAndrew 676
	rb 1024
4290 heavyiron 677
 
4810 eAndrew 678
ntf_msg:
679
	rb 1024
680
 
4213 heavyiron 681
folder_data:
4810 eAndrew 682
	rb 304*32+32 ; 9 Kb
1606 mario79 683
;---------------------------------------------------------------------
684
cur_dir_path:
4810 eAndrew 685
	rb 4096
1606 mario79 686
;---------------------------------------------------------------------
687
library_path:
4810 eAndrew 688
	rb 4096
1606 mario79 689
;---------------------------------------------------------------------
4213 heavyiron 690
temp_dir_path:
4810 eAndrew 691
	rb 4096
1606 mario79 692
;---------------------------------------------------------------------
693
fname_buf:
4810 eAndrew 694
	rb 4096
1606 mario79 695
;---------------------------------------------------------------------
696
procinfo:
4810 eAndrew 697
	rb 1024
1606 mario79 698
;---------------------------------------------------------------------
699
filename_area:
4810 eAndrew 700
	rb 256
1606 mario79 701
;---------------------------------------------------------------------
702
text_work_area:
4810 eAndrew 703
	rb 1024
1606 mario79 704
;---------------------------------------------------------------------
4213 heavyiron 705
align 32
4810 eAndrew 706
	rb 4096
1606 mario79 707
stacktop:
4319 heavyiron 708
I_END: