Subversion Repositories Kolibri OS

Rev

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